首页 > 代码库 > caffe 进行自己的imageNet训练分类:loss一直是87.3365,accuracy一直是0
caffe 进行自己的imageNet训练分类:loss一直是87.3365,accuracy一直是0
caffe 进行自己的imageNet训练分类:
loss一直是87.3365,accuracy 一直是0,可能的原因是:
解决方法: http://blog.csdn.net/jkfdqjjy/article/details/52268565?locationNum=14
知道了原因,解决时就能对症下药。总体上看,softmax输入的feature由两部分计算得到:一部分是输入数据,另部分是各层权重参数。
1、观察数据中是否有异常样本或异常label导致数据读取异常
2、调小初始化权重,以便使softmax输入的feature尽可能变小
3、降低学习率,这样就能减小权重参数的波动范围,从而减小权重变大的可能性。这条也是网上出现较多的方法。
4、如果有BN(batch normalization)层,finetune时最好不要冻结BN的参数,否则数据分布不一致时很容易使输出值变的很大。
http://blog.csdn.net/hyqsong/article/details/51933255
-
标签的问题:
imagelist中,图像分类的标签label一定要从0开始,
-
分类层的 num_output 和 标签的值域 不符合:
a. 要知道imagenet是进行1000类的分类任务,我自己的数据是一个二分类,就一定要把最后‘fc8’InnerProduct的分类层的
num_output: 2
原来是1000,这个设成自己label的类别总数就可以。
b. 但是注意同时要修改train.prototxt和deploy.prototxt两个网络配置文件中的num_output
- 可能是学习率太高了
另外如果是最初的迭代的loss很小,然后突然变成87.3365?如果是这样,可以尝试一下调低学习率,我开始学习率是0.1,后来调成了0.001,反正就是调小,可以多试几次。
caffe 进行自己的imageNet训练分类:loss一直是87.3365,accuracy一直是0
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。