tensorflow训练神经网络时loss出现nan的问题
生活随笔
收集整理的這篇文章主要介紹了
tensorflow训练神经网络时loss出现nan的问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
tensorflow訓練神經網絡時loss出現nan的問題
一般情況下原因是由于優化器上的學習比率learning_rate定義值太大,如:
train_step = tf.compat.v1.train.GradientDescentOptimizer(0.1).minimize(loss)運行打印loss:
for i in range(100):sess.run(train_step,feed_dict={xs:x_data,ys:y_data})#這里我們用全部數據來進行train,其實有個forcast GDO只用一部分數據進行訓練,能使訓練效率更高if i % 50:print('實際偏差率:',sess.run(loss,feed_dict={xs:x_data,ys:y_data})[0])其結果為:
實際偏差率: 9477596000000000.0 實際偏差率: inf 實際偏差率: nan 實際偏差率: nan 實際偏差率: nan 實際偏差率: nan 實際偏差率: nan 實際偏差率: nan ...... 實際偏差率: nan將其中learning_rate的值改為0.01或者更小:
train_step = tf.compat.v1.train.GradientDescentOptimizer(0.01).minimize(loss)結果為:
實際偏差率: 5.9452715 實際偏差率: 5.5919566 實際偏差率: 5.1778126 實際偏差率: 0.023199111 實際偏差率: 0.26209167 實際偏差率: 0.41470975 實際偏差率: 0.47333607 實際偏差率: 0.48828265 實際偏差率: 0.48628327 實際偏差率: 0.47839066 實際偏差率: 0.46885166 實際偏差率: 0.4591693 ....... 實際偏差率: 0.014343787總結
以上是生活随笔為你收集整理的tensorflow训练神经网络时loss出现nan的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图像目标分割_6 Mask RCNN
- 下一篇: 【Pytorch神经网络基础理论篇】 0