亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Tensorflow NaN錯誤?

Tensorflow NaN錯誤?

交互式愛情 2019-11-27 13:18:10
我正在使用TensorFlow,并且修改了教程示例以拍攝RGB圖像。該算法在新圖像集上開箱即用,直到突然之間(仍然收斂,通常精度約為92%),由于ReluGrad收到非限定值的錯誤而崩潰。調試表明,直到突然之間,由于不明原因,該數字都沒有異常發生,引發了錯誤。新增中print "max W vales: %g %g %g %g"%(tf.reduce_max(tf.abs(W_conv1)).eval(),tf.reduce_max(tf.abs(W_conv2)).eval(),tf.reduce_max(tf.abs(W_fc1)).eval(),tf.reduce_max(tf.abs(W_fc2)).eval())print "max b vales: %g %g %g %g"%(tf.reduce_max(tf.abs(b_conv1)).eval(),tf.reduce_max(tf.abs(b_conv2)).eval(),tf.reduce_max(tf.abs(b_fc1)).eval(),tf.reduce_max(tf.abs(b_fc2)).eval())作為每個循環的調試代碼,將產生以下輸出:Step 8600max W vales: 0.759422 0.295087 0.344725 0.583884max b vales: 0.110509 0.111748 0.115327 0.124324Step 8601max W vales: 0.75947 0.295084 0.344723 0.583893max b vales: 0.110516 0.111753 0.115322 0.124332Step 8602max W vales: 0.759521 0.295101 0.34472 0.5839max b vales: 0.110521 0.111747 0.115312 0.124365Step 8603max W vales: -3.40282e+38 -3.40282e+38 -3.40282e+38 -3.40282e+38max b vales: -3.40282e+38 -3.40282e+38 -3.40282e+38 -3.40282e+38由于我的值都不是很高,因此發生NaN的唯一方法是處理不正確的0/0,但是由于本教程代碼沒有進行任何除法或類似運算,因此我看不到其他解釋,這是因為內部TF代碼。我對此一無所知。有什么建議么?該算法收斂良好,在我的驗證集上的準確性穩步提高,在迭代8600時達到了92.5%。
查看完整描述

3 回答

?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

實際上,事實證明這是愚蠢的。我發布此消息是為了防止其他人遇到類似錯誤。


cross_entropy = -tf.reduce_sum(y_*tf.log(y_conv))

實際上是計算交叉熵的一種可怕方法。在某些樣本中,某些類可以在一段時間后確定地排除在外,導致該樣本的y_conv = 0。這通常不是問題,因為您對此不感興趣,但是通過在其中寫入cross_entropy的方式,該特定樣本/類的結果為0 * log(0)。因此,NaN。


替換為


cross_entropy = -tf.reduce_sum(y_*tf.log(tf.clip_by_value(y_conv,1e-10,1.0)))

解決了我所有的問題。


查看完整回答
反對 回復 2019-11-27
  • 3 回答
  • 0 關注
  • 737 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號