最近,由于工作的需要,要使用Caffe做深度学习分类。从安装,到调试,再到走通真是好费周折。好不容易能够做分类了,结果不论输入什么图片,输出的各个类别的概率都是一样的。刚开始,我以为是输入到网络里的数据在哪里出问题了,于是将这些数据转换成图片,果不其然。原来,我在使用多通道的时候用了GDAL读取数据,在重新组织数据的时候参考了网上的一篇微博,读出的数据居然是有问题的。好郁闷!于是我又自己重新写了相关的代码,输入错误数据到网络中的问题解决,但是每个类输出的概率还是老样子!真是好奇怪,于是就将这事扔到了一边,毕竟这种摸索真是太费时费力了。顺便吐槽一下,程序员总是会因自己找到一个bug兴奋不已。有一次吃饭,一同事兴奋的给我讲起了他解决bug的心路历程,最终发现,一个库应该是release版本的,而他使用了debug版本,原来就这么简单的事,同事早已乐的饭渣到处乱飞了。言归正传,我并没有放弃,问了好多大牛,看了好多帖子,发现解决方法五花八门,但一个都用不了!最后,无意间发现,在做分类的时候,加载model就行了,为啥还要加载个deploy,这多麻烦啊,后来想来想去,发现自己在做的时候用原来网络的deploy(我用的是alexnet),尽管在相关位置做了修改,但在网络加载的过程中会提示一个当前层与模型中的层不能名称重复的问题要rename this layer。当时,我在网上找的解决方法是将这些layer的名称在deploy中给改了就可以了,但最终实践证明,这是一个坑!我正是跳这坑里了,于是赶紧找train_val如何转deploy的方法,最终使用训练模型的train_val来修改depoly,所有图片输出结果都一样的问题是解决了!
但是,事情还没有结束!还是没办法使用模型分类。因为,在model训练的时候,验证精度很高,达到了85%以上,但用其他图片做分类测试的时候分类的概率总是第一个类别的最高,换了好几组不同的数据集做训练,结果都一样,还是第一类的概率最高!
有网友说是样本不均匀所导致的,可是我的样本每一个类别的图片个数基本都一样,也有说是过拟合了,但我减少迭代次数,得到的效果还是相同的。不知道是什么原因,纠结啊!如果哪位遇到相同的问题,还请指教,我实在是找不出原因了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:caffe分类输出概率都一样!怎么办! - Python技术站