相比上一篇博客,這篇的區別在於獨立安裝cuda和cudnn,以及用pip的方式安裝相關的包。
開始還是說一下我的電腦環境:
win10 LTSC、vs2015 update 3、geforce 1060m、cuda10.0、cudnn7.6.5.32、tensorflow-gpu2.0.0.
在cuda和cudnn版本保持不變的情況下,測試過的tensorflow-gpu的版本有2.1.0、2.0.2、2.0.0、1.15.3、1.14.0、1.13.1。
步驟一、安裝cuda和cudnn
先安裝後cuda後,將cudnn的解壓複製到cuda安裝目錄下,如我的目錄爲:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0
網上有的教程說需要設置cuda相關的環境變量,我倒是沒設置,採用默認的。
步驟二、更新顯卡驅動至最新
cuda10.0默認安裝的顯卡驅動爲411.31,爲避免由於驅動版本低而帶來的後續問題,我這裏採用極端的方式,將其更新到最新,具體是先將原來的舊驅動刪除,然後重新用360驅動大師進行安裝,最終安裝的版本爲:441.41。
步驟三、創建並激活anaconda虛擬環境
python版本爲3.7,命令如下:
conda create -n tf-gpu python=3.7
conda activate tf-gpu
步驟四、查詢可安裝的tensorflow-gpu版本
pip install tensorflow-gpu==
得到:
最終選擇2.0.0進行安裝
pip install tensorflow-gpu==2.0.0
安裝過程中遇到的問題及解決辦法
問題一、ImportError: DLL load failed: 找不到指定的模塊
執行"import tensorflow as tf"出現的錯誤。可能產生的原因有多種,但我遇到的這個問題的原因是安裝了高版本的tensorflow,比如2.1.0,與當前的cuda和cudnn的版本不匹配,降低到合適的版本就不會出現這個錯誤。
問題二、GPU 調用問題:failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected
安裝完tensorflow後,import部分沒問題,但運行代碼會出現這種問題,即檢測不到GPU,轉而採用CPU運行程序。
我的解決辦法:更新顯卡的驅動程序,原來我的顯卡驅動版本爲411.31,升級到441.41後,再在代碼中添加:
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
這個問題消失。
問題三、可能出現:
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.
因爲cudnn版本不兼容導致。在我安裝了cudnn版本爲7.5.1.10,升級爲7.6.5.32後該問題消失