多線程沖突: "RuntimeError: main thread is not in main loop"

Environment

?? Linux

?? 2080Ti

?? CUDA10.0

?? Python3

?? Tensorflow1.12



有時候會在運行到一定的epoch時突然中斷報錯,有時候會成功運行完全程。神奇的“上帝擲篩子”的Bug奇遇,報錯信息:

? ? ? ? ? ? ? ? “RuntimeError: main thread is not in main loop”

來回檢查了好多遍,發(fā)現(xiàn)可能是由于自己太強迫癥,每個epoch結束都要作分布圖保存。

在作圖的過程中調用了matplotlib和sns等作圖工具包,? 相當于進入了另一個線程之中。在主線程main和作圖的小線程display_score之間來回折騰,很容易線程出錯。且epoch越大,出錯概率越大。

解決方法:把作圖的代碼注釋掉即可。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容