过滤器的数量

该神经网络模型采用的是9,1,5,64,32的模型,我们与128,64和32,16的这两个模型进行比较,查看重建性能和时间

n1=64,n2=32的模型

这个模型也就是我们现在使用的。我们每隔1000次就记录一下它的损失函数的图像,以下:
图片说明
我们选取迭代1w次的图像,观察到其中有两个比较大的拐点。

说明一下,一次迭代,有170个batch,我们每隔10个batch就记录一次,
也就是一次迭代要记录17次,记录的次数乘以10就是batch_size*迭代次数

一个拐点出现在0到20000的横轴上,也就是step0-----step200000(这里多出了一个0,也就是横轴乘以10),另一个拐点出现在step400000----step600000.
一会我们要分分别查看n1=128,n2=64还有n1=32,n2=16的情况

迭代300次的情况

首先我们使用三个模型分别迭代300次,然后查看它们的性能和时间

根据我们的推断,n1=128,n2=64的情况,应该是性能最好,而花费时间最多的,而n1=32,n2=16应该是性能最差的情况,但训练时间应该是最少的

图片说明
这是我们的n1=128,n2=64的情况,其中运行时间就有3423秒,就是57分钟将近一个小时的时间,然后我们在看其他两种情况
图片说明
图片说明
和我们预想的一样,n1=32,n2=16迭代300次仅仅需要1000秒,我们使用的模型则需要1829秒。
在时间方面,我们就要淘汰n1=128,n2=64的情况,训练花费的时间过于多了,三张图片所展示的损失函数的图像基本一致,所以可能是迭代次数较少的原因,性能上并没有产生太多的差别

增加迭代次数

针对于n1=64,n2=32和n1=32,n2=16的情况,我们增加迭代的次数来观察两种情况的差别,两种模型分别迭代1w次来查看两者性能上的区别
图片说明
图片说明
从这张图上就可以看出,两者在第二个拐点就产生上比较大区别,我们进一步的比较
图片说明
尽管后者的模型训练时间更短,但是较晚的出现下降的拐点,也就是说性能在和前者相比较差。我们将两个模型分别迭代3k次,之后进行测试,两者的PSNR分别为

16.495502
16.025484

但是在迭代1w之后进行比较

19.13114
19.170135

我们发现不一定是过滤器数量更多性能就更好,可能需要更多的训练次数才能够体现出过滤器次数多的优势。

现在得出的结论

考虑到时间和性能的因素。我们并不打算使用n1=128,n2=64的模型。而对于训练次数少的情况,我们更愿意使用n1=32,n2=16的模型,应为两者的性能差距并不大。如果迭代次数不断增多,考虑到时间和性能的权衡问题,我们就要选择论文中给出的模型。