Reloaded PyTorch implementation of WDSR, BMVC 2019 [pdf].
Small models
Networks | Parameters | DIV2K (val) | Set5 | B100 | Urban100 | Pre-trained | Eval cmd | Train cmd |
---|---|---|---|---|---|---|---|---|
WDSR x2 | 1,190,100 | 34.76 | 38.08 | 32.23 | 32.34 | Download | detailspython trainer.py --dataset div2k --eval_datasets div2k set5 bsds100 urban100 --model wdsr --scale 2 --job_dir X --ckpt ./wdsr_x2/epoch_30.pth --eval_only |
detailspython trainer.py --dataset div2k --eval_datasets div2k set5 bsds100 urban100 --model wdsr --scale 2 --job_dir ./wdsr_x2 |
WDSR x3 | 1,195,605 | 31.03 | 34.45 | 29.14 | 28.33 | Download | detailspython trainer.py --dataset div2k --eval_datasets div2k set5 bsds100 urban100 --model wdsr --scale 3 --job_dir X --ckpt ./wdsr_x3/epoch_30.pth --eval_only |
detailspython trainer.py --dataset div2k --eval_datasets div2k set5 bsds100 urban100 --model wdsr --scale 3 --job_dir ./wdsr_x3 |
WDSR x4 | 1,203,312 | 29.04 | 32.22 | 27.61 | 26.21 | Download | detailspython trainer.py --dataset div2k --eval_datasets div2k set5 bsds100 urban100 --model wdsr --scale 4 --job_dir X --ckpt ./wdsr_x4/epoch_30.pth --eval_only |
detailspython trainer.py --dataset div2k --eval_datasets div2k set5 bsds100 urban100 --model wdsr --scale 4 --job_dir ./wdsr_x4 |
Large models
Networks | Parameters | DIV2K (val) | Set5 | B100 | Urban100 | Pre-trained | Eval cmd | Train cmd |
---|---|---|---|---|---|---|---|---|
WDSR x2 | 37,808,180 | 35.06 | 38.28 | 32.38 | 33.07 | Download | detailspython trainer.py --dataset div2k --eval_datasets div2k set5 bsds100 urban100 --model wdsr --num_blocks 32 --num_residual_units 128 --scale 2 --job_dir X --ckpt ./wdsr_x2/epoch_30.pth --eval_only |
detailspython trainer.py --dataset div2k --eval_datasets div2k set5 bsds100 urban100 --model wdsr --num_blocks 32 --num_residual_units 128 --scale 2 --job_dir ./wdsr_x2 |
WDSR x3 | 37,826,645 | 31.34 | 34.76 | 29.32 | 28.94 | Download | detailspython trainer.py --dataset div2k --eval_datasets div2k set5 bsds100 urban100 --model wdsr --num_blocks 32 --num_residual_units 128 --scale 3 --job_dir X --ckpt ./wdsr_x3/epoch_30.pth --eval_only |
detailspython trainer.py --dataset div2k --eval_datasets div2k set5 bsds100 urban100 --model wdsr --num_blocks 32 --num_residual_units 128 --scale 3 --job_dir ./wdsr_x3 |
WDSR x4 | 37,852,496 | 29.33 | 32.58 | 27.78 | 26.79 | Download | detailspython trainer.py --dataset div2k --eval_datasets div2k set5 bsds100 urban100 --model wdsr --num_blocks 32 --num_residual_units 128 --scale 4 --job_dir X --ckpt ./wdsr_x4/epoch_30.pth --eval_only |
detailspython trainer.py --dataset div2k --eval_datasets div2k set5 bsds100 urban100 --model wdsr --num_blocks 32 --num_residual_units 128 --scale 4 --job_dir ./wdsr_x4 |
conda install pytorch torchvision -c pytorch
conda install tensorboard h5py scikit-image
pip install -v --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" git+https://github.com/NVIDIA/apex.git
python trainer.py --dataset div2k --eval_datasets div2k set5 bsds100 urban100 --model wdsr --scale 2 --job_dir ./wdsr_x2 --eval_only
# or
python trainer.py --dataset div2k --eval_datasets div2k set5 bsds100 urban100 --model wdsr --scale 2 --job_dir ./wdsr_x2 --ckpt ./latest.pth --eval_only
Benchmarks (Set5, BSDS100, Urban100)
Download and organize data like:
wdsr/data/DIV2K/
├── DIV2K_train_HR
├── DIV2K_train_LR_bicubic
│ └── X2
│ └── X3
│ └── X4
├── DIV2K_valid_HR
└── DIV2K_valid_LR_bicubic
└── X2
└── X3
└── X4
wdsr/data/Set5/*.png
wdsr/data/BSDS100/*.png
wdsr/data/Urban100/*.png