keras訓練cnn模型時loss為nan


keras訓練cnn模型時loss為nan

    1.首先記下來如何解決這個問題的:由於我代碼中 model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])

即損失函數用的是categorical_crossentropy所以,在pycharm中雙擊shift鍵,尋找該函數,會出現keras.loss模塊中有該函數,進入該函數后,

原函數為:

 

def categorical_crossentropy(y_true, y_pred):
return K.categorical_crossentropy(y_true, y_pred)

修改為:
def categorical_crossentropy(y_true, y_pred):
return K.categorical_crossentropy(y_true, y_pred+1e-5)
網上很多都是tensorflow的解決方案,找了好久好久才在一篇博客的啟發下,想着去找這個損失函數。https://www.cnblogs.com/hutao722/p/9761387.html

2.另外是為什么會出現這種現象(當然還會有其他可能,這里只記下我這種問題出現的原因)

我這里是在計算損失函數時求log的時候遇到了log(0)則會導致nan

 


免責聲明!

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



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