TShopping

標題: (成功) Win10用 Anaconda 建 3070系列的 Tensorflow 深度學習環境 [打印本頁]

作者: woff    時間: 2023-7-7 00:11
標題: (成功) Win10用 Anaconda 建 3070系列的 Tensorflow 深度學習環境

環境 WIN10 RTX 3070 TI, 3060

配置一覽:


  • Tensorflow-gpu2.4 (keras會出錯)




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


1. 下載並安裝Visual Studio 2017 2019都可以

為了使Cuda能夠安裝順利,首先需要安裝Visual Studio:



下載Visual Studio




安裝Visual Studio時勾選「使用C++的桌面開發」

2. 安裝 CUDA 11.2(用自訂義,只ˋ安裝CUDA就好)
如果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 資料夾到環境變數

觀察以下路徑是否皆已存在系統環境變數內,缺失的路徑自行手動加入,完成後重新開機就大功告成。



直接用CONDA 安裝,參考pytorch
  1. conda 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 系列顯示卡的深度學習環境。

  1. conda create -n py38 python=3.8.0
複製代碼

安裝完畢以後,使用以下指令啟用剛剛建立的虛擬環境。

  1. conda activate py38
複製代碼
  1. pip install tensorflow-gpu==2.5.0
  2. pip install matplotlib==3.5.2
複製代碼


啟用剛建立的虛擬環境

接著步驟如下:

  1. pip install numpy==1.19.2
複製代碼




測試GPU是否有安裝完成
  1. from tensorflow.python.client import device_lib
  2. print(device_lib.list_local_devices())
複製代碼



執行下列CODE時,發現無法epochs

  1. from tensorflow.python.client import device_lib
  2. import tensorflow as tf

  3. mnist =tf.keras.datasets.mnist
  4. (x_train, y_train),(x_test,y_test)=mnist.load_data()

  5. model =tf.keras.models.Sequential([
  6.     tf.keras.layers.Flatten(input_shape=(28,28)),
  7.     tf.keras.layers.Dense(128,activation='relu'),
  8.     tf.keras.layers.Dropout(0,2),
  9.     tf.keras.layers.Dense(10,activation='softmax')
  10. ])
  11. print(x_train)
  12. model.compile(optimizer='adam',
  13.               loss='sparse_categorical_crossentropy',
  14.               metrics=['accuracy'])

  15. model.fit(x_train, y_train,epochs=5,validation_split=0.2)
  16. model.evaluate(x_test,y_test)
複製代碼


程式正常執行




如果還是不能執行
6. 補齊缺失檔案

當上述步驟都結束以後,筆者興沖沖的打算開 train,卻發現進度緩慢,不禁讓我懷疑起 Rtx 3070 TI的能力。但是定睛一看,Tensorflow 所列出的硬體只有一顆 CPU,換言之 Tensorflow 是使用了 CPU 在做訓練,才這麼慢啊啊啊啊啊啊!

這時出現錯誤訊息
  1. Could not load dynamic library 'cusolver64_10.dll'; dlerror: cusolver64_11.dll not found
複製代碼

於是打開 Conda Prompt 的 log 以後注意到,原來 CUDA 的元件沒有讀取,顯示為「cusolver64_11.dll」這個檔案缺失,所以無法正常使用 GPU 來做訓練,才使用了 CPU。



後來在搜尋答案的過程當中在 reddict 的討論串中找到了解決方案,實際步驟如下:

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








歡迎光臨 TShopping (http://www.tshopping.com.tw/) Powered by Discuz! X3.2