1. 程式人生 > >關於caffe訓練出現loss=87.3365

關於caffe訓練出現loss=87.3365

可以在solver裡面設定:

debug_info: true

看看各個層的data和diff是什麼值,一般這個時候那些值不是NAN(無效數字)就是INF(無窮大),

一般的解決辦法是:

1、檢查資料的標籤是否從0開始且連續

2、把學習率base_lr調低

3、資料問題

4、中間層沒有歸一化,導致經過幾層後,輸出的值已經很小了,這個時候再計算梯度就比較尷尬了,

這也是我遇到的問題,所以我再各個卷積層加入了BN層和SCALE層,不過FC層沒有必要加吧?

5、把base_lr調低,然後batchsize也調高

6、把data層的輸入圖片進行歸一化,就是從0-255歸一化到0-1,使用的引數是:

  1.  transform_param {  
  2.     scale: 0.00390625//畫素歸一化,1/255
  3.   } 

7、網路引數太多,網路太深,刪掉幾層看看,可能因為資料少,需要減少中間層的num_output

8、記得要shuffle資料,否則資料不夠隨機,幾個batch之間的資料差異很小,一旦連續幾個batch把loss調很小,然後就。。。 現在不造解釋,

9、如果是自己寫的loss,檢視loss寫的對不對

最新發現,我的顯示卡(gtx 780ti)是有問題的,在tensorflow和keras上跑也會出現loss突然變大,然後一發不可收拾

然而同樣的程式碼在其他顯示卡上是可以的