A. 環境 WIN10 RTX 3070 TI, 3060 配置一覽: - Python 3.8, 3.9
- Nvidia driver 522.25
- Cuda 11.2(用其他版本在model.fit() GPU RAM會溢出)
- Cudnn 8.1.1
- tensorflow-gpu2.5.0
- Tensorflow-gpu2.4 (keras會出錯)
B. 環境 WIN10 RTX 4070 配置一覽: - Python 3.8, 3.9
- Nvidia driver 522.25
- Cuda 11.7
- Cudnn 11.7
- tensorflow-gpu2.5.0
Anaconda Tensorflow 深度學習 Windows CUDA
注意:WIN10版本有可能造成CUDA無法安裝,1909之前可,後來裝不上,後來換22H2就可安裝CUDA了
1. 下載並安裝Visual Studio 2017 2019都可以為了使Cuda能夠安裝順利,首先需要安裝Visual Studio: - 在Visual Studio的官方網站下載「社群版」。
- 下載後運行.exe檔案進行安裝,安裝選項勾選C++的桌面開發

下載Visual Studio

安裝Visual Studio時勾選「使用C++的桌面開發」
2. 安裝 CUDA 11.2(用自訂義,只ˋ安裝CUDA就好)- 到 Nvidia 官方的 CUDA toolkit 下載頁,登入 Nvidia developer 帳號後即可下載所需的 CUDA 11.2。
- 下載完成後安裝此 .exe 檔案,默認資料夾將位於 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2
Anaconda Tensorflow 深度學習 Windows CUDA
如果CUDA 安裝失敗
你可以看到 他是Visual Studio Integration Failed 而其他的則是沒有安裝 所以呢! 我就試試看不要裝 Visual Studio Integration (選自訂安裝 然後把不想裝的勾取消) 神奇的事情發生了 他居然沒跑錯誤訊息!! 也就是我要的他裝進去了 你可以檢查一下 真的有CUDA這個資料夾囉~~~~~
3. 安裝 cuDNN 8.1.1到 Nvidia 官方的 cuDNN 下載頁,登入 Nvidia developer 帳號後即可下載。須注意 cuDNN 版本為 8.1.1、適合 Windows 的版本。
Anaconda Tensorflow 深度學習 Windows CUDA
cudnn下載後解壓縮,並且將解壓縮後的「CUDA」資料夾內的檔案複製到CUDA toolkit 的資料夾內 (C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2)。
Anaconda Tensorflow 深度學習 Windows CUDA
4. 加入 CUDA 資料夾到環境變數觀察以下路徑是否皆已存在系統環境變數內,缺失的路徑自行手動加入,完成後重新開機就大功告成。 - C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\bin
- C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\libnvvp
- C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\extras\CUPTI\lib64
- C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\include
- C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\lib\x64
- C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\extras\demo_suite
Anaconda Tensorflow 深度學習 Windows CUDA
3070 直接用CONDA 安裝,參考pytorch- conda install pytorch torchvision torchaudio pytorch-cuda=11.0 -c pytorch -c nvidia
複製代碼 4070 指令- conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
複製代碼
5. 使用 Anaconda建 置虛擬環境若讀者沒有安裝 Anaconda,請先安裝。待 Anaconda 環境安裝完畢以後,從 Windows 10 開始列,找到 Anaconda3 之下的 Anaconda Prompt後開啟。
Anaconda Tensorflow 深度學習 Windows CUDA
win10開始列中的Anaconda Prompt開啟 Anaconda Prompt 後,輸入以下指令,建立名稱為 py380 的虛擬環境。此虛擬環境將是適用於 Nvidia 30X0 系列顯示卡的深度學習環境。 - conda create -n py38 python=3.8.0
複製代碼
安裝完畢以後,使用以下指令啟用剛剛建立的虛擬環境。 - pip install tensorflow-gpu==2.5.0
- pip install matplotlib==3.5.2
複製代碼
啟用剛建立的虛擬環境接著步驟如下: - 安裝版本號為「1.19.2」的numpy,這也是實測可用的版本號,高於1.19.2的版本在import時會產生錯誤(一定要記得安裝numpy)。
- 安裝版本號為「2.5.0」的tensorflow-gpu,此是目前實測可支援Cuda 11.2的版本號。
- pip install numpy==1.19.2
複製代碼
Anaconda Tensorflow 深度學習 Windows CUDA
測試GPU是否有安裝完成
- from tensorflow.python.client import device_lib
- print(device_lib.list_local_devices())
複製代碼
Anaconda Tensorflow 深度學習 Windows CUDA
執行下列CODE時,發現無法epochs
- from tensorflow.python.client import device_lib
- import tensorflow as tf
- mnist =tf.keras.datasets.mnist
- (x_train, y_train),(x_test,y_test)=mnist.load_data()
- model =tf.keras.models.Sequential([
- tf.keras.layers.Flatten(input_shape=(28,28)),
- tf.keras.layers.Dense(128,activation='relu'),
- tf.keras.layers.Dropout(0,2),
- tf.keras.layers.Dense(10,activation='softmax')
- ])
- print(x_train)
- model.compile(optimizer='adam',
- loss='sparse_categorical_crossentropy',
- metrics=['accuracy'])
- model.fit(x_train, y_train,epochs=5,validation_split=0.2)
- model.evaluate(x_test,y_test)
複製代碼
程式正常執行
Anaconda Tensorflow 深度學習 Windows CUDA
如果還是不能執行
6. 補齊缺失檔案當上述步驟都結束以後,筆者興沖沖的打算開 train,卻發現進度緩慢,不禁讓我懷疑起 Rtx 3070 TI的能力。但是定睛一看,Tensorflow 所列出的硬體只有一顆 CPU,換言之 Tensorflow 是使用了 CPU 在做訓練,才這麼慢啊啊啊啊啊啊!
Anaconda Tensorflow 深度學習 Windows CUDA
這時出現錯誤訊息
- Could not load dynamic library 'cusolver64_10.dll'; dlerror: cusolver64_11.dll not found
複製代碼
於是打開 Conda Prompt 的 log 以後注意到,原來 CUDA 的元件沒有讀取,顯示為「cusolver64_11.dll」這個檔案缺失,所以無法正常使用 GPU 來做訓練,才使用了 CPU。
Anaconda Tensorflow 深度學習 Windows CUDA
後來在搜尋答案的過程當中在 reddict 的討論串中找到了解決方案,實際步驟如下: - 到路徑「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin」當中找到檔案「cusolver64_10.dll」。
- 將「cusolver64_10.dll」複製一份,改名為「cusolver64_11.dll」。
- 大功告成,開 train
7. PyCharm 置入ENV環境PyCharm -> Setting -> Python Interpreter -> Add Interpreter
把ENV環境路徑帶入就可以了
Anaconda Tensorflow 深度學習 Windows CUDA
參考文章
https://metai.medium.com/win10-%E7%92%B0%E5%A2%83-%E4%BD%BF%E7%94%A8-anaconda-%E5%BB%BA%E7%BD%AE-rtx-3000-%E7%B3%BB%E5%88%97%E7%9A%84-tensorflow-%E6%B7%B1%E5%BA%A6%E5%AD%B8%E7%BF%92%E7%92%B0%E5%A2%83-9929e2a7c313
https://www.wpgdadatong.com/blog/detail/46041
https://teafatesanya.blog.fc2.com/blog-entry-94.htmlhttps://markjong001.pixnet.net/blog/post/176171019
|