1. 数据和标签
数据分类标注是否准确?数据是否干净?
另外博主经历过自己创建数据的时候数据标签设置为1,2,...,N,训练的时候最后FC层设置的输出output num为N。训练的时候loss一直不降。后来将标签改为0,1,2,...,N-1,重新训练,很快就收敛了。
为啥label需要从0开始?
在使用SoftmaxLoss层作为损失函数层的单标签分类问题中,label要求从0开始,例如1000类的ImageNet分类任务,label的范围是0~999。这个限制来自于Caffe的一个实现机制,label会直接作为数组的下标使用,具体代码SoftmaxLoss.cpp中133行和139行的实现代码。