增加网络层数
成果和收获
因为Resnet有不同的层数,所以直接在原来网络的基础上进行了修改,出乎意料的是很顺利的完成了。
于是分别采用18-layer、34-layer、101-layer的网络层数进行了对比。
而且我突发奇想将18-layer所有层的参数打开进行了训练,效果emmmm,看下一部分吧,哈哈!
实验结果及图片
- ISTA 34-layer
- ISTA 101-layer
- 1027种子 34-layer
- 1027 种子 101layer
存在的问题
- 效果不明显,虽然网络层数进行了增加,但是效果并没有想象中的明显,甚至还有几个效果更差了。最高的也只有1%左右的提升。
- 说一下把所有层的参数都打开后的结果…
看图!
哈哈哈哈哈,允许我自己笑一下 。
好了,正经的分析结果:之前都是采用的预训练的网络,冻结除最后一层的所有参数,将其打开后,由于数据量太少,出现了过拟合现象(小组的组员有人赞同我的说法应该是这个原因)。 - 训练时间太长,我记得跑两数据集的34-layer和101-layer用了两天的时间。(还不算我中间一次**的关机,幸亏后面找回了部分数据)。
更换网络模型
模型一
因为写论文的时候老师指出没有对比,所以我先用之前用过的效果不太好的模型做了一下对比。
mobilenetv2模型该模型的结构较小,应该属于轻量级的模型。
本来我还好心存侥幸可能多训练几次准确率就上去了
实验结果如下图
可以看出效果没有resnet那么高,但并没有差很多?
并不是测试集由于图片数量少,所以看起来差距没有那么明显,但是自习看训练集,还是有一定的差距的。
模型二
实验失败
这个改进拟采用NTSNET作为网络模型。但是存在一个问题,该网络没有可以直接调用的模型。
找到了两个可以用的文件:
一个是直接最后使用的模型,只能对鸟类进行分类,并输出鸟的种类。
另一个是一个训练文件,但是其只适用于该鸟类的数据集,上面有一定的标记。但是我们自己的数据库并没有这些标记,当我自己想写数据集的预处理的时候发现自己的编程能力达不到。
最后我选择用它在pytorch官网中的调用方式直接调用,改了半天后,模型终于加载成功,但是,该模型的输出是两个线性通道的特征向量。然后我的能力达不到将其输出一个再进行回归的程度。1
2020年11月17-18日对该模型输出有了新的想法,准备在研读其论文后证明想法,并进行实践。 ↩︎