簡體   English   中英

使用張量流訓練神經網絡一段時間后生成Nans

[英]Nans Being Generated after training a neural network for sometime using tensorflow

幾天以來,我一直在面對這個問題。 我不知道我在哪里犯錯。 我的代碼很長,無法在此處復制所有內容

這是第一種情況的結果:

Accuracy: 0.1071 Error: 1.45003
Accuracy: 0.5149 Error: 0.259084
Accuracy: 0.7199 Error: 0.197301
Accuracy: 0.7934 Error: 0.138881
Accuracy: 0.8137 Error: 0.136115
Accuracy: 0.8501 Error: 0.15382
Accuracy: 0.8642 Error: 0.100813
Accuracy: 0.8761 Error: 0.0882854
Accuracy: 0.882 Error: 0.0874575
Accuracy: 0.8861 Error: 0.0629579
Accuracy: 0.8912 Error: 0.101606
Accuracy: 0.8939 Error: 0.0744626
Accuracy: 0.8975 Error: 0.0775732
Accuracy: 0.8957 Error: 0.0909776
Accuracy: 0.9002 Error: 0.0799101
Accuracy: 0.9034 Error: 0.0621196
Accuracy: 0.9004 Error: 0.0752576
Accuracy: 0.9068 Error: 0.0531508
Accuracy: 0.905 Error: 0.0699344
Accuracy: 0.8941 Error: nan
Accuracy: 0.893 Error: nan
Accuracy: 0.893 Error: nan

我嘗試了各種方法,但沒有弄清楚我在哪里出錯。

1)將交叉熵計算更改為其他事物

self._error = -tf.reduce_sum(y*pred+ 1e-9))
self._error = -tf.reduce_sum(y*pred)
self._error = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logits=pred, labels=y))
self._error = tf.reduce_mean(-tf.reduce_sum(y * tf.log(pred+1e-8),reduction_indices=1))

out = tf.nn.softmax_cross_entropy_with_logits(logits = pred, labels=y)
self._error= tf.reduce_mean(out)

我已經嘗試了所有優化程序-sgd-亞當-阿達格勒-rmsprop

我使用了tensorflow提供的默認優化器和手動應用的不同參數。 我什至檢查了學習率,所以小到0.00001

偏壓:
我已經嘗試了1.0和0.0

重量:
用tf.truncated_normal_initializer(stddev = 0.1,dtype = tf.float32)初始化

網絡:
FC784-FC256-FC128-FC10
我也嘗試了它的不同變體。

激活功能:
-Relu-Tanh-泄漏relu tf.maximum(輸入,0.1 *輸入)

數據:
MNIST數據集除以255進行歸一化。該數據集來自Keras。

我知道這個問題是在各種stackoverflow問題中提出的,並且我已經嘗試了建議的所有方法,據我所知,它們都沒有幫助我。

從上面的信息很難判斷出哪里出了問題。 是的,調試神經網絡可能非常繁瑣。 幸運的是, Tensorflow Debugger是一款出色的工具,可讓您在每次迭代時逐步遍歷網絡並分析權重。

在tfdbg中運行以下命令,以獲取圖中顯示的第一個naninf值。

run -f has_inf_or_nan

確保您的所有標簽都不超過softmax-outputs的數量-1 在這種情況下, sigmoid_cross_entropy_with_logits會產生NaN而不是引發錯誤。 通常,如果標簽的范圍是1..N,但是softmax索引從0..N-1開始,則可能發生這種情況

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM