Keras訓練時報錯:Batch 0: Invalid loss, terminating training

這個錯誤是由於無法計算loss造成的,有好多種情況會導致出現這種報錯,需要慢慢排查。在這裏整理一下排查的思路,給遇到相同問題的人一些思路。

Batch 0: Invalid loss, terminating training

循着這條思路,可以從下面幾個方面檢查自己的代碼:

  1. 導入神經網絡的圖片格式都一樣嗎?我之前在製作數據集的時候,把幾個數據集整合到一起,其中有一個數據集忘記重新對它resize,導致每次導入這些數據的時候就報錯,因爲我是通過generator導入的,一個batch裏面就會出現幾個異常size的數據,導致無法計算loss
  2. 檢查softmax的神經節點個數與label數對不對應,若有100個分類,label是從1排到100就要將節點數設置成101,這時0位上是空着的,當然如果是從0到99編號的,就不需要考慮這個,這個地方不注意,很容易出事,我爲了這個小錯誤,浪費了一個下午。
  3. 依然是label的問題,我整理的數據集,label編號是從幾個數據集中提取的,比如只抽取0-4編號,8-12編號的數據,一共10個編號:【0,1,2,3,4,8,9,10,11,12】,這時如果設置softmax層的節點爲10個,就會報錯,要把上面的編號和對應的數據整理一遍,變成0-9的排號
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章