TensorFlow框架This is probably because cuDNN failed to initialize 解決對策整理和驗證

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.

寫在前面:
環境:Tensorflow2.0 + Python3.6

當讀者看到此問題時,一定大概率遇到上述報錯的信息,首先出現這個問題很明顯,就cuDNN出問題,大概率不是你的tensorflow代碼寫的問題,其實還可以精確點說就是我們電腦機器出問題了。
遇到這個問題,筆者也去找了很多博客,試了一些方法,總結一下出現這個問題的可能有:
1)很多博客說說cuda和cudnn不比配,或者tensorflow版本太高。
-->如果你之前就成功跑過簡單的tensorflow訓練,我覺得可以忽略這個吧。但是安裝cuda和cudnn版本不匹配是出現問題,匹對版本可看:深度學習1-深度學習環境安裝,有這一篇就夠了!Anaconda-Python+Tensorflow2.0-GPU+Keras+Pycharm

2)電腦GPU性能太低,內存不夠支持模型訓練(就是顯卡爆)。大概是這種情況!!!這個也要分兩種:
一是電腦性能還可以,只是當前訓練模型太複雜,導致顯卡內存耗盡了;
二是電腦性能不太好,小型模型訓練就爆炸了,這種性能低的機器就有處理是否開啓GPU訓練的設置了

------------------------2020.4.20-----------

3) 感覺主要還是cuda和cudnn依賴環境沒有做好,很多網絡上的方法除了強制使用cpu外,其他的一些方法,比如按需分配GPU等策略,我都嘗試過,反正我這裏試過的都是不成功,看了很多定位,應該cuda和cudnn不匹配導致,那麼就沒有什麼方法終極解決,或者我們在安裝tensorflow時,自動給我們安裝好匹配的cuda和cudnn麼?

答案是有的,那就是直接通過anaconda 安裝tensorflow,它在安裝的時候,會自動給我們安裝相對應的cuda+cudnn,完全不用我們去擔心匹配問題,很香,至少通過這個方法我的gpu正常運行了

conda install tensorflow-gpu==2.0

詳細可以查看我這篇安裝博文,Tensorflow2.0-GPU深度學習環境安裝,踩坑後整理一步到位安裝總結篇.Win10+Anaconda+Tensorflow2.0-GPU+Pycharm,強烈建議Anaconda很香

---------------------------2020.4.20---------------------------------

對策:
一是電腦性能還可以,只是當前訓練模型太複雜,導致顯卡內存耗盡了:
解決方法:讓模型按需取用GPU
# 防止Tensorflow運行GPU內存不足造成錯誤
from tensorflow.compat.v1 import ConfigProto
from tensorflow.compat.v1 import InteractiveSession
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ['CUDA_VISIBLE_DEVICES'] = "0,1"  #選擇哪一塊gpu
config = ConfigProto()
config.allow_soft_placement=True #如果你指定的設備不存在,允許TF自動分配設備
config.gpu_options.per_process_gpu_memory_fraction=0.7  #分配百分之七十的顯存給程序使用,避免內存溢出,可以自己調整
config.gpu_options.allow_growth = True   #按需分配顯存,這個比較重要
session = InteractiveSession(config=config)

二是電腦性能不太好,小型模型訓練就爆炸了,這種性能低的機器就有處理是否開啓GPU訓練的設置了:
解決方法:直接使用CPU計算好了,不要開啓GPU了,筆者就是這麼悲催的電腦,應了那句深度學習訓練前置比拼就是比電腦!!

os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ['CUDA_VISIBLE_DEVICES'] = "-1"  #選擇哪一塊gpu--->值爲-1就是說不用GPU了,直接使用CPU計算

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章