caffe下訓練時遇到的一些問題匯總


 

1、報錯:“db_lmdb.hpp:14] Check failed:mdb_status ==0(112 vs.0)磁盤空間不足。”

這問題是由於lmdb在windows下無法使用lmdb的庫,所以要改成leveldb。


但是要注意:由於backend默認的是lmdb,所以你每一次用到生成的圖片leveldb數據的時候,都要把“--backend=leveldb”帶上。如轉換圖片格式時:

 

又如計算圖像的均值時:

 


還有在.prototxt中

data_param {
                      source: "./mysample_val_leveldb"
                      batch_size: 100
                      backend: LEVELDB     //這個也要改掉的,原來是LMDB
                    }

 

2、caffe下使用“bvlc_reference_caffenet”模型進行訓練時,出現了“Check failed:data_”

 

這個問題是由於訓練樣本的圖像尺寸太小了,以至於到pool5池化層的時候輸入的尺寸已經小於kernel的大小了,進而下一步輸入編程了0x0,因此會報錯。

解決的方法是要么在歸一化圖像尺寸時足夠大(小於64*64好像就不行了),要么換用另一種模型(如果圖像本身就小,放大圖像會丟失圖像特征,此時可嘗試使用Cifar10模型)

 

3、caffe訓練時遇到loss一直居高不下時:

http://blog.sina.com.cn/s/blog_141f234870102w941.html


我利用caffe訓練一個基於AlexNet的三分類分類器,將train_val.prototxt的全連接輸出層的輸出類別數目改為3,訓練一直不收斂,loss很高;當把輸出改成4或1000(>3)的時候,網絡可以收斂。也就是caffenet結構的輸出層的類別數一定要大於我訓練集的類別數才可以收斂!后來查了半天才發現原因,讓我淚奔。。。

原來我把圖像類型的label設置成1,2,3,改成0,1,2后,最后全連接層的輸出改為3就OK了。


 

 

待更新...!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM