解決tensorflow-gpu安裝過程中出現的tf.test.is_gpu_avaiable()返回false的一部分解決方法


說起安裝tensorflow-gpu的時候出現的一些坑就有點郁悶寫個博客記錄一下這一些坑,也算給后人一點解決方法

Question Ⅰ

第一種出現在import tensorflow as tf 的時候,看截圖!
在這里插入圖片描述
這玩樣我一開始安裝的時候看別人的教程里貌似也有這問題,就沒管它,以為沒事情,后來最后的最后,我才發現是我想多了,這玩樣解決方法其實很簡單也很暴力,不就是沒找到cudart64_101.dll這個文件嘛,直接搜索,然后找到你電腦里的cudart64_101.dll,一般在這個目錄下C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin會有這樣的一個文件,然后Ctrl-C,進入C:\Windows\System32目錄,來個Cril-V,over,解決!再來一次你就會發現,哎,他好了
在這里插入圖片描述

Question Ⅱ

接下來就是那萬惡的GPU問題了
測試的時候輸入 tf.test.is_gpu_available(),然后出現
在這里插入圖片描述
得嘞,一大堆東西,前面一個waring不用管,出現這個警告的原因是TF2里面這行語句改了,不用管,他自動幫你轉換了,直接看最后一行,好家伙,False,毫無疑問,沒連上GPU啊

噢,插句題外話,有些教程里會讓你輸入tf.Session()來測試,然后你會發現,他會出現這樣的一個報錯
在這里插入圖片描述
這是因為這句話是tensorflow1.*的一個語法,在tensorflow2.*把這句話改成了tf.compat.v1.Session(),輸入這個以后就會顯示對應的信息了
在這里插入圖片描述

這里有幾種可能,我主要講一下我遇到的,其他的我也就給個其他博主的鏈接了,畢竟沒遇到嘛

CUDA、cuDNN、tensorflow版本不一致

對應版本的話,可以看這位博主整理的,還是目前比較的全的https://blog.csdn.net/K1052176873/article/details/114526086
當然也可以直接上官網https://tensorflow.google.cn/install/source_windows?hl=en#gpu
這個問題其實我很久以前遇到的,那時候我在裝Pytorch,那次以后我就把這玩樣全部配好了,這次出現的也不是這個問題,我這里就給出我當時的幾種解決思路。

  • 第一種是看看這三個版本對不對應,如果不對應的話可能就需要重新安裝一下cuda,主要是CUDA版本,貌似cuDNN版本高一點沒啥太大關系,我電腦上的cuDNN也是8.0的而不是表里的7.4。這個的話我就不給鏈接了,百度一搜太多了,基本上都是講這個問題的,我也沒有看哪個比較的好,所以就自行搜一下吧。
  • 第二種也是我當初遇到的問題,顯卡驅動版本過低了,我當初可是被這個坑的不輕,我一直在找CUDA的問題,最終確實驅動的鍋。這種的話,你可以下載一個GeForce Experience,官網:https://www.nvidia.cn/geforce/drivers/,它會自動給你更新驅動,不過這東西它需要登錄,首次登錄要驗證郵箱,驗證郵件發過來呢又非常的慢,甚至出現一個周才到也是有可能的(別懷疑,我真的遇到過),so,可以選擇手動下載安裝驅動,在官網里也有,選擇對應的信息就好了
  • 第三種是PATH內配置的的問題,在PATH里有兩條是需要手動配的,如下,如果沒有配的話,也是有可能出現這個問題的
    在這里插入圖片描述

Could not load dynamic library 'cudnn64_7.dll'; dlerror: cudnn64_7.dll not found

yes,各位看到的是一條報錯信息,就是這條報錯導致我輸出False,我當時最后發現這玩樣然后改完后有點想口吐芬芳,就說啊,其他框架可以調用GPU,咋就你TF不行。這段報錯出現在 tf.test.is_gpu_available()的輸出里,可以仔細悄悄,如果有的話,那解決方法......前面說了復制粘貼的事情,請看Question I
當我改完這個以后,它就....True了????
在這里插入圖片描述

沒安裝GPU版本

這個問題,enmm......,也不是不可能出現,如果裝的是CPU版本的話,那肯定是調用不了GPU的,乖乖卸了重裝吧
驗證方法的話,進入tensorflow環境,python下運行下面這些代碼

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

看看輸出(圖片來自於https://blog.csdn.net/qq_37902216/article/details/89556068
在這里插入圖片描述
這種的話是CPU版本
如果是GPU版本的話,應該會有這樣的一段在這里插入圖片描述
(因為這個是我寫這篇博客時候想到的,那時候我已經解決那個False問題了,但應該在輸出里也會有明顯的GPU字樣,或者反向思維,不是CPU版本那肯定就是GPU版本了)

卸載

pip uninstall tensorflow

安裝

pip install tensorflow-gpu==版本號

然后重新驗證一下

主要應該就這些了,如果還有其他的其實可以看一看那一大段輸出,或許在里面就會找到答案,我其他的也沒遇到過,也不好在此談論,希望這篇博客對大家能有所幫助。

如有錯誤,歡迎指正!

同時發布在CSDN:https://blog.csdn.net/tangkcc/article/details/120510152


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM