woff 發表於 2023-7-7 00:11:54

(成功) Win10用 Anaconda 建 3070系列的 Tensorflow 深度學習環境

環境 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會出錯)




注意:WIN10版本有可能造成CUDA無法安裝,1909之前可,後來裝不上,後來換22H2就可安裝CUDA了


1. 下載並安裝Visual Studio 2017 2019都可以為了使Cuda能夠安裝順利,首先需要安裝Visual Studio:
[*]在Visual Studio的官方網站下載「社群版」。
[*]下載後運行.exe檔案進行安裝,安裝選項勾選C++的桌面開發

https://miro.medium.com/v2/resize:fit:700/1*QKyHjkmynOe4j0_qhYCGxg.png

下載Visual Studio

https://miro.medium.com/v2/resize:fit:700/1*82ev47alUn5ov5bUJjYkhA.png

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


如果CUDA 安裝失敗



你可以看到 他是Visual Studio Integration Failed而其他的則是沒有安裝所以呢! 我就試試看不要裝 Visual Studio Integration (選自訂安裝 然後把不想裝的勾取消)神奇的事情發生了 他居然沒跑錯誤訊息!! 也就是我要的他裝進去了你可以檢查一下 真的有CUDA這個資料夾囉~~~~~
3. 安裝 cuDNN 8.1.1到 Nvidia 官方的 cuDNN 下載頁,登入 Nvidia developer 帳號後即可下載。須注意 cuDNN 版本為 8.1.1、適合 Windows 的版本。

cudnn下載後解壓縮,並且將解壓縮後的「CUDA」資料夾內的檔案複製到CUDA toolkit 的資料夾內 (C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2)。

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



直接用CONDA 安裝,參考pytorchconda install pytorch torchvision torchaudio pytorch-cuda=11.0 -c pytorch -c nvidia



5. 使用 Anaconda建 置虛擬環境若讀者沒有安裝 Anaconda,請先安裝。待 Anaconda 環境安裝完畢以後,從 Windows 10 開始列,找到 Anaconda3 之下的 Anaconda Prompt後開啟。
win10開始列中的Anaconda Prompt開啟 Anaconda Prompt 後,輸入以下指令,建立名稱為 py380 的虛擬環境。此虛擬環境將是適用於 Nvidia 30X0 系列顯示卡的深度學習環境。conda create -n py38 python=3.8.0
安裝完畢以後,使用以下指令啟用剛剛建立的虛擬環境。conda activate py38pip 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


測試GPU是否有安裝完成
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())


執行下列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)

程式正常執行




如果還是不能執行
6. 補齊缺失檔案
[*]非常重要的一步!
[*]非常重要的一步!
[*]非常重要的一步!

當上述步驟都結束以後,筆者興沖沖的打算開 train,卻發現進度緩慢,不禁讓我懷疑起 Rtx 3070 TI的能力。但是定睛一看,Tensorflow 所列出的硬體只有一顆 CPU,換言之 Tensorflow 是使用了 CPU 在做訓練,才這麼慢啊啊啊啊啊啊!這時出現錯誤訊息
Could not load dynamic library 'cusolver64_10.dll'; dlerror: cusolver64_11.dll not found
於是打開 Conda Prompt 的 log 以後注意到,原來 CUDA 的元件沒有讀取,顯示為「cusolver64_11.dll」這個檔案缺失,所以無法正常使用 GPU 來做訓練,才使用了 CPU。

後來在搜尋答案的過程當中在 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環境路徑帶入就可以了



參考文章
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



頁: [1]
查看完整版本: (成功) Win10用 Anaconda 建 3070系列的 Tensorflow 深度學習環境