数据集 6个
set5 只包含5张测试图片 婴儿 鸟 蝴蝶 一个人头 一个女人
set14 包含14张测试图片
BSD100 包含100张从自然景象到特定物体的图片
Urban100 包含100张人造建筑图像
DIV 2K 用作NITRE挑战 2k的分辨率(比如2040*1356) 包含800张训练图像 100张验证图像 100张测试图像(不公开)
Manga109 包含109张动画图像
算法
根据综述
常用评价标准
PSNR Peak Signal-to-Noise Ratio 峰值信噪比 越大越好
SSIM structural similarity index 结构相似度 越大越好
复现算法RCAN
论文给出的结果
低分辨率的图片有Bicubic (BI) and blur-downscale(BD) degradation models 两种
训练的是在BI图片上 放大倍数为2倍
python main.py --model RCAN --save RCAN_BIX2_G10R20P48 --scale 2 --n_resgroups 10 --n_resblocks 20 --n_feats 64 --reset --chop --save_results --print_model --patch_size 96
2020-09-01-13:16:27
n_GPUs: 1
data_train: DIV2K
data_test: DIV2K
n_train: 800 训练
n_val: 5 验证
scale: [2] 放大倍数
patch_size: 96 输入`48*48` 输出`96*96`
model: RCAN
act: relu 激活函数
n_resblocks: 20
n_feats: 64
res_scale: 1
reset: True 从头训练
test_every: 1000
epochs: 1000
batch_size: 16
gan_k: 1 k value for adversarial loss
学习率每200个epoch变为原来的一半
lr: 0.0001
lr_decay: 200
decay_type: step
gamma: 0.5
optimizer: ADAM
momentum: 0.9
beta1: 0.9
beta2: 0.999
epsilon: 1e-08
weight_decay: 0
loss: 1*L1
print_every: 100
n_resgroups: 10
reduction: 16
还没有跑完 只跑完了209epoch 要求是1000个epoch
现在的学习率经过一次衰减到了5.00e-5
800个图片随机旋转90 180 270和水平翻转
解释1600/16000:
1600/ (batch + 1) * self.args.batch_size +1是因为从0开始
16000为数据集总长
return len(self.images_hr) * self.repeat
self.repeat = args.test_every // (args.n_train // args.batch_size)
test_every 1000即每1000个batch 计算一次PSNR
n_train 800
batch_size 16
所以800幅图片可以提供50个batch 但是需要1000个batch 即需要20组800幅图片
所以将800*20=16000
网络结构部分
给定的训练好的模型 符合论文中给出的数据
用epoch209