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
1.標簽的問題:
圖像分類的標簽label一定要從0開始,針對N分類問題,標簽需設置為0,1,2,3,4,...,N-1。
2.分類層的num_output和標簽的值域不符合:
由於Alexnet網絡是進行1000類的分類任務,而我需要進行五分類,所以就要把train_val.prototxt文件里的最后一層的全連接層‘fc8’的InnerProduct的分類層數num_output: 1000,改為5,這個設成自己label的類別總數就可以。
3.可能是學習率太高
另外如果是最初的迭代的loss很小,然后突然變成87.3365?如果是這樣,可以嘗試一下調低學習率,我開始學習率是0.1,后來調成了0.001,反正就是調小,可以多試幾次。
