天天看點

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

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

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

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

Question Ⅰ

第一種出現在

import tensorflow as tf

的時候,看截圖!

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

這玩樣我一開始安裝的時候看别人的教程裡貌似也有這問題,就沒管它,以為沒事情,後來最後的最後,我才發現是我想多了,這玩樣解決方法其實很簡單也很暴力,不就是沒找到

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,解決!再來一次你就會發現,哎,他好了

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

Question Ⅱ

接下來就是那萬惡的GPU問題了

測試的時候輸入

tf.test.is_gpu_available()

,然後出現

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

得嘞,一大堆東西,前面一個waring不用管,出現這個警告的原因是TF2裡面這行語句改了,不用管,他自動幫你轉換了,直接看最後一行,好家夥,

False

,毫無疑問,沒連上GPU啊

噢,插句題外話,有些教程裡會讓你輸入

tf.Session()

來測試,然後你會發現,他會出現這樣的一個報錯
解決tensorflow-gpu安裝過程中出現的tf.test.is_gpu_avaiable()傳回false的一部分解決方法
這是因為這句話是

tensorflow1.*

的一個文法,在

tensorflow2.*

把這句話改成了

tf.compat.v1.Session()

,輸入這個以後就會顯示對應的資訊了
解決tensorflow-gpu安裝過程中出現的tf.test.is_gpu_avaiable()傳回false的一部分解決方法

這裡有幾種可能,我主要講一下我遇到的,其他的我也就給個其他部落客的連結了,畢竟沒遇到嘛

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裡有兩條是需要手動配的,如下,如果沒有配的話,也是有可能出現這個問題的
    解決tensorflow-gpu安裝過程中出現的tf.test.is_gpu_avaiable()傳回false的一部分解決方法

yes,各位看到的是一條報錯資訊,就是這條報錯導緻我輸出

False

,我當時最後發現這玩樣然後改完後有點想口吐芬芳,就說啊,其他架構可以調用GPU,咋就你TF不行。這段報錯出現在

tf.test.is_gpu_available()

的輸出裡,可以仔細悄悄,如果有的話,那解決方法......前面說了複制粘貼的事情,請看Question I

當我改完這個以後,它就....

True

了????

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

沒安裝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)

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

這種的話是CPU版本

如果是GPU版本的話,應該會有這樣的一段

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

(因為這個是我寫這篇部落格時候想到的,那時候我已經解決那個

False

問題了,但應該在輸出裡也會有明顯的GPU字樣,或者反向思維,不是CPU版本那肯定就是GPU版本了)

解除安裝

pip uninstall tensorflow
           

安裝

pip install tensorflow-gpu==版本号
           

然後重新驗證一下

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

如有錯誤,歡迎指正!

同時釋出在CSDN:https://blog.csdn.net/tangkcc/article/details/120510152