pytorch排查loss值出現(xiàn)nan的情況及解決
問題
- 跑實(shí)驗(yàn)室時(shí)出現(xiàn)了損失值為nan(下圖所示)

排查
因?yàn)橛幸恍┡袛嗨杂昧?/p>
bd_index = torch.where(s_label != o_label)[0]
語句來選出滿足條件的下標(biāo),這樣做可能返回一個(gè)空列表(不滿足條件時(shí)),因?yàn)楹罄m(xù)有用到 torch.log() 函數(shù)來計(jì)算,所以如果是空列表放進(jìn)去就會出現(xiàn)loss = nan,但是不同情況得具體分析,
排查的過程最好用的就是使用語句
with torch.autograd.detect_anomaly():
來將訓(xùn)練代碼包裹起來(如下圖所示),這樣就能迅速定位到出現(xiàn)空值的點(diǎn)(平時(shí)訓(xùn)練時(shí)得去掉,會拖慢速度)

最終定位到 torch.log() 處,最終解決辦法就是加上常量 log_prob = torch.log(prob + 1e-7) 這樣就不會空值
- 運(yùn)行成功:

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python Tkinter實(shí)時(shí)顯示數(shù)據(jù)功能實(shí)現(xiàn)
這篇文章主要介紹了python Tkinter實(shí)時(shí)顯示數(shù)據(jù)功能實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07
pytorch 兩個(gè)GPU同時(shí)訓(xùn)練的解決方案
這篇文章主要介紹了pytorch 兩個(gè)GPU同時(shí)訓(xùn)練的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
Python mplfinance庫繪制金融圖表實(shí)現(xiàn)數(shù)據(jù)可視化實(shí)例探究
mplfinance(Matplotlib Finance),它是基于Matplotlib的庫,專門用于創(chuàng)建金融圖表和交互式金融數(shù)據(jù)可視化,本文將深入介紹?mplfinance,包括其基本概念、功能特性以及如何使用示例代碼創(chuàng)建各種金融圖表2024-01-01
Python批量將csv文件轉(zhuǎn)化成xml文件的實(shí)例
將 csv 格式轉(zhuǎn)換成xml格式有許多方法,可以用數(shù)據(jù)庫的方式,也有許多軟件可以將 csv 轉(zhuǎn)換成xml。但是比較麻煩,本文利用 Python 一鍵批量將 csv 文件轉(zhuǎn)化成 xml 文件。2021-05-05

