优化器是网络训练中的重要组成部分
目前常用的优化器有Adam,adadelta,AdaMax,Nadam,RMSProp和SGD等等。在DeblurGANv2的源代码中,使用的优化器为Adam,以下将尝试不同的优化器对训练过程和训练结果的影响,对DeblurGANv2进行改进。
修改步骤:
修改1:config.yaml配置文件中的优化器更改
修改2:train.py文件中定义所需要的优化器,
注:有些优化器pytorch已经内置,可以直接调用,没有内置的需要定义优化器,然后进行调用
使用Adam优化器的训练结果(源代码使用这个优化器)
使用adadelta优化器的训练结果
使用AdaMax优化器的训练结果
使用Nadam优化器的训练结果
使用RMSProp优化器的训练结果
使用SGD优化器的训练结果
更换不同的优化器,对性能指标的影响:
PSNR指标对比
PSNR指标对比平滑操作(分析-信号处理-平滑-窗口点数20)
SSIM指标对比
SSIM指标对比平滑操作
总结:
1.更换优化器,以PSNR数据为例,SGD和adadelta的值较低,adam和RMSProp较高,其中adam是源码使用的优化器
2.更换优化器,以SSIM数据为例,SGD和adadelta的值较低,adam和RMSProp较高,其中adam是源码使用的优化器
总的来说,还是原来的优化器Adam和修改为RMSProp,具有更好的效果,PSNR和SSIM更高!