训练FCN时遇到的问题总结

按照下面这个博客的教程训练FCN

http://blog.csdn.net/wangkun1340378/article/details/70238290

刚开始了出现‘SIFFlowSegDataLayer’object has no attribute'param_str'的错误:

原因是由于我用的caffe是官神mnt文件夹中的caffe,改成用主目录中的caffe就好了

或者还有可能因为py脚本每次运行时均会生成.pyc文件;在已经生成.pyc文件的情况下,若代码不更新,运行时依旧会走pyc,参考下面博客:

http://blog.csdn.net/yitianbian2012/article/details/51543415

caffe导入训练数据的data层的相关介绍:

http://www.cnblogs.com/idiotgroup/p/5676344.html

 

之后再运行的时候又碰到了读取模型的error:

F0417 07:39:42.430991  1149 upgrade_proto.cpp:95] Check failed: ReadProtoFromBinaryFile(param_file, param) Failed to parse NetParameter file: /root/caffe/models/vgg16-fcn.caffemodel

意思是说vgg16-fcn这个caffemodel读取出现了问题,其实这个vgg-16的模型是在教程中的网盘中下载的,可能这个模型不完整,然后我在对应的README.md文件中给官网中上把vgg16的caffemodel重新下了一遍,然后问题解决,看来网盘还是不怎么靠谱啊。。。

参考了下面这个博客:

http://blog.csdn.net/yewei11/article/details/70212344

 

实际训练迭代次数和solve.py中的

for _ in range(50)

     solver.step(2000)

有关,不是sover.prototxt文件中的最大迭代次数

 

训练100000次结束后,运行测试发现生成的分割图全黑,后来注意到博主还说了句:

在infer.py中将
out = net.blobs['score'].data[0].argmax(axis=0)
改成
out = net.blobs['score_sem'].data[0].argmax(axis=0)
但是改完了测试生成的图片还是全黑

网上查下,说这有两个原因:一个是loss值太大,第二个是deploy.prototxt文件有问题,

但是loss值其实从刚开始的几十万下降到几千也下降了不少,所以应该不是loss的问题,但是deploy.prototxt文件是从这个教程中给的网盘下载的啊,

我还天真的很信任他给的这个deploy.prototxt文件,最后我在网上搜半天实在找不出来原因了,我就想要不按照他说的制作deploy.prototxt的方法试试,

果然自己制作的deploy.prototxt文件再去测试,成功!生成正确的分割图。

所以总结一句,网盘不可信! 

 

posted @ 2017-06-11 23:27  YYYYQQQQ  阅读(2025)  评论(4编辑  收藏  举报