1. 程式人生 > >tensorflow訓練網路時loss出現nan值,準確率為0的問題解決方法(嘗試)

tensorflow訓練網路時loss出現nan值,準確率為0的問題解決方法(嘗試)

問題:

在使用tensorflow訓練網路的時候,發現每次一個batch訓練時,它的loss都為nan,導致準確率都為0。


nan是代表無窮大或者非數值,一般在一個數除以0時或者log(0)時會遇到無窮大,所以你就要想想是否你在計算損失函式的時候,你的網路輸出為0,又計算log,從而導致出現nan。

網上也有很多原因的解釋,比如學習率過大,batch過大,或者本身資料就很髒等等原因,我嘗試減小學習率,從0.001依次減小10倍,都減小到了1000倍,還是會出現nan.

我又減小了batch_size,結果還是沒有解決。

然後我參考了這篇部落格http://blog.sina.com.cn/s/blog_6ca0f5eb0102wr4j.html#cmt_5A0D972D-72F73880-BE365276-926-938

說了可能是由於log(0)的緣故,所以我就在我計算損失函式的過程中遇到的log的地方都加了clip.

比如tf.log(tf.clip_by_value(tf.sigmoid(self.scores),1e-8,1.0)

加了之後,繼續訓練,發現損失loss就不是nan了。


相關推薦

tensorflow訓練網路loss出現nan準確率0的問題解決方法嘗試

問題:在使用tensorflow訓練網路的時候,發現每次一個batch訓練時,它的loss都為nan,導致準確率都為0。nan是代表無窮大或者非數值,一般在一個數除以0時或者log(0)時會遇到無窮大,所以你就要想想是否你在計算損失函式的時候,你的網路輸出為0,又計算log,

caffe訓練網路loss突然增大並維持在86.3333333的問題解決

caffe中loss表示網路的收斂情況。loss不斷變小表示網路是收斂的,正常情況下,loss會小到零點幾的一個數之後上下波動。 造成loss突然增大並一直不降,可能的原因有很多種。大體如下: 資料

JUnit除錯出現錯誤 Failed to load ApplicationContext 的解決方法不一定適合所有人

在我寫一個小型的ssm框架的系統是,除錯執行出現如下結果: 九月 01, 2017 3:56:28 下午 org.springframework.test.context.support.DefaultTestContextBootstrapper getDefaultTe

安裝 VirtualBox 出現回滾無法安裝及解決方法

block 回滾 提示安裝 unable tar trac 既然 命令 現象 原文:安裝 VirtualBox 出現回滾,無法安裝及解決方法 緣由:打算安裝 Vagrant,因此打算安裝 VirtualBox。 現象:安裝 VirtualBox,進度快到最後的時候

在微信端使用video標簽播放結束會出現QQ瀏覽器推薦視頻的解決辦法vue

優酷 tar var top tel auto 應該 qq瀏覽器 每隔一秒 會出現播放結束顯示QQ瀏覽器推薦視頻的原因:(我是vue的項目,而且我是新手,只是單純的給大家分享一個方法,代碼比較low請自動忽略)   因為在x5(QQ瀏覽器)內核中,把video標簽劫持了,只

關於idea新建子目錄往父目錄名字後疊加而不是樹形結構的解決方法

選中 ack == 我們 click ont src post cli 我們在IDEA中創建子目錄時,子目錄總是在父目錄後面疊加而不是樹形,如下 我們可以打開項目窗口的

安裝驅動提示找不到雜湊解決方法WIN10

安裝openJTAG驅動時出現“檔案的雜湊值不在指定的目錄”,系統為WIN10專業版。原因是驅動無數字簽名,在WIN10中是不安全的驅動,所以顯示雜湊值不在範圍內不能安裝。解決方法:1.找到WIN10的設定,點選“設定”2.點選最後一個“更新和回覆”,然後點選“恢復”3.點選

ubuntu 16.04 ROS + kinect v2 driver安裝方法;安裝驅動遇到的問題及解決方法1

安裝ROS (Kinetic) ROS Kinetic ONLY supports Wily (Ubuntu 15.10), Xenial (Ubuntu 16.04) and Jessie (Debian 8) for debian packages. sudo sh

【開源自動化測試疑難FAQ】【WebDriver】WebDriver啟動白屏掛起問題解決方法

       WebDriver啟動的時候很容易無限掛起,直到外圍框架設定的超時時間達到而退出執行,給測試執行帶來很大的困擾。上一篇文件WebDriver啟動時白屏掛起問題解決方法(一)給出的解決方案只是能夠部分地解決工具問題,但有時候這種hang死會發生在timeouts

Android 軟鍵盤彈出把佈局頂上去控制元件亂套解決方法

解決辦法:方法一:在你的activity中的oncreate中setContentView之前寫上這個程式碼getWindow().setSoftInputMode(WindowManager.Lay

PHP建立影象成為亂碼的解決方法GD

有問題的程式碼: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/x

對於Ajax請求出現Options請求解決方法Fiddler

今天突然通過Ajax呼叫接口出現異常,居然有Options請求,當然瞭解過,沒有實際遇到,後來查詢各種得到對於複雜請求它會先進行Options請求,用來試水,如果試水成功,繼續真正的請求,否則終止

Android中ListView中包含Button滑動丟失選中狀態的解決方法

1.介面卡中的主要邏輯: import android.content.Context; import android.support.v4.content.ContextCompat; import android.text.TextUtils; import a

listView拓展的時候出現的拓展頁面顯示不全解決方法只顯示一條資料

自定義listView ,重寫onMeasure 方法 @Override protected void onMeasure(int widthMeasureSpec, int heightMeas

ssh 登入時常出現的幾種錯誤以及解決方法Linux

前言 ssh是Linux系統中常用的遠端登陸的命令,有的時候我們通過xshell等遠端連線軟體使用ssh去登陸遠端的伺服器的時候,會遇到一些問題。 下面是關於ssh 遠端登陸的問題解決方法的總結。(更新中) 常見報錯及解決 1.SSH

一串數字中只有一個數字出現一次其他數字都出現兩次查找出這個數字python

一次 面試 個數字 一個 直接 fas 其中 3.2 != 背景:   電話面試&手撕代碼 2019.03.22 Mufasa 問題:   一串數字中,只有一個數字出現一次,其他數字都出現兩次,查找出這個數字 條件:   這串數字是有序數

TensorFlow 訓練多個loss函式技巧: 訓練步驟凍結部分層freeze some scopes從tensorboard檢查問題

這兩天使用TensorFlow訓練一個多個損失函式的網路模型,自己搭建網路,調參訓練,由於網路是一個兩階段的網路,具有三個損失函式,其中兩個損失函式監督第一個階段,一個損失函式家督第二個階段,而且損失函式監督的並不全是最後一層,還有中間層,這需要調整我的訓練方式。 訓練方式

sharepoint 2013 使用Office Web Apps 查看或編輯office文檔頁面出現:“抱歉出現了問題”錯誤

moss sharepoint officewebapp報錯 sharepoint 使用Office Web Apps 查看或編輯office文檔時頁面出現:“抱歉,出現了問題”錯誤 sharepoint 2013 使用Office Web Apps 查看或編輯office文檔時頁面出現:“抱歉,出現了

EF生成模型出現異常:表“TableDetails“中列“IsPrimaryKey”的DBNull解決方法

執行 mar value src work dbnull blank 解決 mysql Entity Framework連接MySQL時:由於出現以下異常,無法生成模型:“表“TableDetails”中列“IsPrimaryKey”的值為DBNull. 出現以上錯誤時,考

開發JAVA9以上的項目出現ClassNotFoundException: javax.xml.bind.JAXBException的解決方法

inf XML alt exce span pan vnr BE class 一、問題描述:   開發JAVA9以上的項目時,出現ClassNotFoundException: javax.xml.bind.JAXBException的解決方法 二、問題樣例