Description [link]
- Team: 오예!
- 구성원: gradient, Capshulization
- Score: 24.95184 (🥈 2nd)
- 개발 환경
Ubuntu version : 18.04 GPU : V100 (4개) Cuda version : 11.1 Python version : 3.8 Pytorch version : 1.12.1
- Code download
git clone https://github.com/thisisiron/dacon-sr.git cd dacon-sr
- 가상환경 구축 및 라이브러리 다운로드
pip install virtualenv virtualenv dacon source dacon/bin/activate pip install -r requirements.txt
- Data download [link]
├── dacon-sr │ ├── open.zip │ │
- open.zip 압축 해제
unzip open.zip
- 압축 후 디렉토리 상태
├── dacon-sr │ ├── train │ │ ├── lr │ │ ├── hr │ ├── test │ │ ├── lr │ ├── train.csv │ ├── test.csv
- 압축 후 디렉토리 상태
- Image Preprocessing (Patch 만들기)
python preprocessing.py
./data/train
에서hr
과lr
에 설정한 옵션 디렉토리 밑에 npy 파일 생성- 전처리 후 디렉토리 상태
├── dacon-sr │ ├── data │ │ ├── train │ │ │ ├── lr │ │ │ │ ├── p128x128_r512x512_s32x32 │ │ │ ├── hr │ │ │ │ ├── p512x512_r2048x2048_s128x128 │ ├── train.csv │ ├── test.csv │ ├── train │ ├── test
실행 명령어는 아래 Command를 참고해주세요
- SwinIR + L1 Loss 학습 진행 (Epoch 34까지 진행, 해당 Epoch 근처 Test 성능 향상이 거의 없었음)
- 1번에서 진행한 실험 weight를 이용하여 아래 두 가지 실험 진행
- SwinIR + L1 Loss + L2 Loss (Epoch 5까지 진행)
- SwinIR + L1 Loss + LR 1e-5 (Epoch 11까지 진행)
- EXP_NAME: experiments에 생성된 실험 디렉토리 (실행날짜 + name 옵션에 설정한 NAME으로 구성)
- Ex.
experiments/10051136_swinir_no-acti_epoch26_lr1e5
- Ex.
- ckpt_NUM: 해당 실험 디렉토리에서 weight 아래에 있는 ckpt_NUM 디렉토리
- Ex.
10051136_swinir_no-acti_epoch26_lr1e5/weight/ckpt_10
- Ex.
- SwinIR + L1 Loss
python -m torch.distributed.run --nproc_per_node 4 main.py --gene swinir \ --cfg models/swinir.yaml \ --data p128x128_r512x512_s32x32 \ --data_hr p512x512_r2048x2048_s128x128 \ --batch 4 \ --name NAME
- SwinIR + L1 Loss + L2 Loss (10:5)
python -m torch.distributed.run --nproc_per_node 4 main.py --gene swinir \ --cfg models/swinir.yaml \ --data p128x128_r512x512_s32x32 \ --data_hr p512x512_r2048x2048_s128x128 \ --batch 4 \ --lamb_l2 5 \ --weight experiments/EXP_NAME/weight/ckpt_NUM/gene \ --name NAME
- SwinIR + L1 Loss + LR 1e-5
python -m torch.distributed.run --nproc_per_node 4 main.py --gene swinir \ --cfg models/swinir.yaml \ --data p128x128_r512x512_s32x32 \ --data_hr p512x512_r2048x2048_s128x128 \ --batch 4 \ --lr 1e-5 --weight experiments/EXP_NAME/weight/ckpt_NUM/gene \ --name EXP_NAME
LR 512 이미지를 HR 2048로 예측 (LR 512 -> HR 2048)
python infer.py --img-size 2048 --stride 512 --batch 1 --weight experiments/EXP_NAME/weight/ckpt_NUM/gene
Model weight download [link]
- ensemble.ipynb 실행
- 앙상블할 결과를 알맞게 subm_dirs 리스트에 작성
- 앙상블 진행