시스템 사양 (환경)
CPU - 5900X
Memory - 96GB
Mainboard - Gigabyte, X570 Aorus Master
GPU - RX 6900XT (reference)
WSL - Ubuntu 20.04
WSL2 환경에서 AMD GPU와 (6900XT) DirectML을 활용하여 Super-resoltion 모델을 돌려보았다.
Super-resolution 모델이란 닳고 닳은 이미지를 딥러닝 기술을 활용하여 새 이미지처럼 만들어 주는 것이다.
많은 모델이 개발되어 공유되고 있지만 AMD GPU와 DirectML이라는 제한된 환경 탓에
패키지 버전 이슈가 없는 모델로 찾고 찾아 BSRGAN 이라는 모델을 선택하였다.
모델에 대한 자세한 설명은 아래 깃헙 링크에 있다.
또한 참고한 코랩 튜토리얼은 아래와 같다.
SwinIR demo on Real-World Image SR.ipynb - Colaboratory (google.com)
먼저 conda 가상환경을 만들자
1. conda create -n swin python=3.8 입력
환경이름이 swin인 이유는 원래 SwinIR이라는 모델을 돌려보고자 했으나 버전 문제로 실패하였고
BSRGAN을 시도 했으나 이름 바꾸는걸 깜빡했다.
2. git clone https://github.com/cszn/BSRGAN.git 을 입력하여 깃헙 자료를 받자
3. sudo apt install libblas3 libomp5 liblapack3 을 입력하여 모델 사용에 필요한 패키지들 설치
wget https://github.com/cszn/KAIR/releases/download/v1.0/BSRGAN.pth -p model_zoo 을 입력하여 모델 다운로드
5. conda activate swin 을 입력하여 가상환경을 활성화 한 후,
pip install torchvision==0.9.0 을 입력하여 torchvision을 먼저 설치한다.
공식 가이드에는 pytorch-directml을 설치하는 것으로 안내하나,
가이드대로 설치하면 호환되지 않는 torchvision 버전이 설치된다. 따라서 먼저 torchvision을 설치한다.
6. pip install pytorch-directml 을 입력하여 pytorch 설치
7. tqdm, opencv-python, matplotlib 설치
각각 또는 한꺼번에 pip install 패키지 를 해준다.
8. 깃헙으로 받은 BSRGAN 디렉토리 내부에서 sudo nano main_test_bsrgan.py 를 입력하여 코드를 수정하자.
기존 코드는 cuda를 이용하는 방식으로 작성되어 있으므로 해당 부분들을 바꾸거나 주석처리 해야한다.
Device 정의부분에 'dml' 입력해준다.
이외에 cuda를 포함하는 코드들이 보일텐데 (torch.cuda.empty_cache()) 모두 다 주석처리 해준다.
9. 수정이 되었다면 python main_test_bsrgan.py 를 입력하여 모델을 돌려보자.
돌리면 아래와 같이 알아서 돌아갈텐데, BSRGAN 폴더 안의 testsets/RealSRSet 에 있는 사진들을 처리한다.
처리된 사진은 RealSRSet_results_x4 폴더에 저장된다.
성능을 확인해 보고자 구글링해서 찾은 아래에 보이는 저화질의 고양이 사진을 넣어보았다.
결과는
끝.
'컴퓨터 > 머신러닝 (Machine Learning)' 카테고리의 다른 글
Video Restoration Transformer (VRT) 사용하기 - 1 (0) | 2022.09.01 |
---|---|
WSL2, Nvidia GPU, CUDA 환경에서 super-resolution 모델 (SwinIR) 돌려보기 (0) | 2022.07.29 |
WSL2, AMD GPU, DirectML 환경에서 super-resolution 모델 (tecogan) 돌려보기 (0) | 2022.07.25 |
WSL2, AMD GPU, DirectML 환경에서 Yolov4 돌려보기 (0) | 2022.07.11 |
머신/딥러닝 with amd gpu 좋은 글 (0) | 2022.05.26 |