tensorflow.python.framework.errors_impl.UnknownError: Failed to get convolution algorithm.的一种解决方法
2021-03-23
使用tensorflow構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練時出現(xiàn)這個錯誤tensorflow.python.framework.errors_impl.UnknownError: ?Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.
tensorflow報告為UnknownError,大概意思為無法獲取卷積算法,可能的原因是cuDNN未初始化。
電腦為gtx1050 4GB,tensorflow版本為2.1.0,CUDA版本為10.1,cudnn為7.6.5
在開始正式的訓(xùn)練時我將搭建的網(wǎng)絡(luò)代碼輸入了python Console,然后在正式訓(xùn)練的時候就出現(xiàn)了這個錯誤,經(jīng)過排查是因為python console沒有關(guān)閉。原控制臺引用了代碼中的網(wǎng)絡(luò),盡管沒有在控制臺中訓(xùn)練,但是可能控制臺中加載網(wǎng)絡(luò)的時候就調(diào)用了cudnn,在正式訓(xùn)練的時候這邊的網(wǎng)絡(luò)就無法加載到cudnn,把控制臺關(guān)了重新開起來就可以正常跑代碼了,這是這個UnknownError的一種原因,可能還有其他原因。
另外,在訓(xùn)練一個網(wǎng)絡(luò)的時候,如果新開一個窗口訓(xùn)練其他的網(wǎng)絡(luò),原來的這個網(wǎng)絡(luò)就會卡住從而無法繼續(xù)訓(xùn)練,盲猜還是cudnn的占用問題,似乎一塊gpu上只能由一個程序調(diào)用cudnn,如果當(dāng)前cudnn被一個程序調(diào)用,其他程序好像就用不了cudnn,或者是搶占從而導(dǎo)致先前的程序無法繼續(xù)調(diào)用cudnn,這種情況在訓(xùn)練、預(yù)測和衡量模型時都會出現(xiàn),具體原理我不清楚,但是保持一段時間內(nèi)只有一個程序使用cudnn確實能避免上述問題
?
總結(jié)
以上是生活随笔為你收集整理的tensorflow.python.framework.errors_impl.UnknownError: Failed to get convolution algorithm.的一种解决方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 8g ubuntu 树莓派4b_树莓派4
- 下一篇: ElasticSearch highli