深度學習loss出現NAN的原因分析

2021-09-19 15:35:31 字數 469 閱讀 1693

最近寫model出現了一些nan的問題,總結一下

1.我用的gan網路做推薦,g model 中的pred需要用

self.prob = tf.clip_by_value(tf.nn.sigmoid(self.score), 1e-5, 1)處理一下,不然score可能為0,在cross_entropy與policy gradient中log(score)->log(0)->無窮大,導致nan
2.網路的feed_dict如果一不小心為空,也會導致nan

3.梯度**問題:(1)減小lr (2)減小batch_size (3)資料歸一化(加入normalization,例如bn、l2 norm等)(4)加入gradient clipping

4.還有一種原因:比秒髒資料導致 log(score)->log(0)->無窮大

5.加入gradient clipping

6.加入gradient clipping;

訓練網路出現loss為NaN的情況

原因 在學習過程中,梯度變得非常大,使得學習的過程偏離了正常的軌跡。症狀 觀察輸出日誌中每次迭代的loss值,發現loss隨著迭代有明顯的增長,最後因為loss值太大以致於不能用浮點數去表示,所以變成nan。可採取的方法 1.降低學習率,比如solver.prototxt中base lr,降低乙個數...

深度學習網路訓練中出現loss函式為nan的原因

說法一 說明訓練不收斂了,學習率太大,步子邁的太大導致梯度 等都是有可能的,另外也有可能是網路的問題,網路結構設計的有問題。我現在的採用方式是 1.弱化場景,將你的樣本簡化,各個學習率等引數採用典型配置,比如10萬樣本都是同一張複製的,讓這個網路去擬合,如果有問題,則是網路的問題。否則則是各個引數的...

《深度學習筆記》 loss函式的學習和理解

在南溪看來,loss函式是對目標target和 prediction之間的一種距離度量的公式 自身不變性指的是 當 prediction target時,loss函式的值為0 在數學上,我們可以認為是對映l ll的l ll函式矩陣為對稱矩陣 這一點是從蔡老師對 svm核函式有效性的證明 的論述中學習...