windows 10 安裝 anaconda tensorflow gpu CUDA & cudnn
首先,先安裝Anaconda3
我是安裝3.7版本
安裝好後開啟Anaconda Navigator
開啟後畫面如下
- 點選左邊Environments
- 點選Create 新增一個Environments
- 選擇3.6版本的python環境,這邊要注意,如果安裝3.7版tensorflow會不支援。
建置好新環境後先把函式庫裝一裝:
- 點選剛建好的環境
- 點選Not installed
- 輸入tensorflow
- 在tensorflow-gpu 打勾
- Apply
點選Apply後安,這邊要有耐心,約等個5分鐘左右才會安裝完。
這邊順便把會用到的函示庫裝一裝:
1. numpy
2. matplotlib
3. SciPy
4. Pydot-ng
5. tensorflow
6. Keras
輸入 activate pypy 激活剛剛新增的"pypy" 環境 ("pypy" 自己取名)
可以看到激活後紅框的地方會改成剛剛建立的環境,然後再輸入
> pip install tensorflow-gpu
跑完後輸入python
> python
接著會進入python 編譯
>>>import tensorflow as tf
>>>
如果沒有報錯,就是tensorflow已經安裝成功,接著就是要安裝CUDA & cuDNN
讓GPU來執行tensorflow。
安裝CUDA & cuDNN
這邊點擊查看最新tensorflow支持的CUDA版本:我們安裝的tensorflow是1.12.0版,對應到CUDA & cuDNN 是 CUDA(9) &cuDNN(7)
所以不要裝錯了。tensorflow是1.12.0版只支援9 & 7的版本。
在這個網址查找CUDA已發佈版本:https://developer.nvidia.com/cuda-toolkit-archive
我選擇下載9.2版本,網路上搜尋都說要9.0版,但我使用9.2沒有問題。
選擇Local版1.5GB,下載後安裝
選擇自訂安裝
如果已確定自己的NVIDIA 的driver已更新到最新,除了CUDA,另外都不要勾,我曾經勾選過,SSD直接掛掉開不了機,然後就系統重灌......
接著就一路下一步。
安裝好了之後,最後要安裝cuDNN
cuDNN歷史版本在該網址下載:https://developer.nvidia.com/rdp/cudnn-archive
下載cuDNN麻煩的是需要註冊賬號。登入帳號後才能下載。
我下載紅框的部分 cuDNN v7.4.1(Nov 8. 2018) for CUDA 9.2
下載後解壓縮會得到三個資料夾 : bin, include, lib
將這三個資料夾複製到下面路徑底下
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2
會得到以下這些訊息:
a: (Const): /job:localhost/replica:0/task:0/device:GPU:0
b: (Const): /job:localhost/replica:0/task:0/device:GPU:0
2019-01-10 23:41:18.286498: I tensorflow/core/common_runtime/placer.cc:927] a: (Const)/job:localhost/replica:0/task:0/device:GPU:0
2019-01-10 23:41:18.286963: I tensorflow/core/common_runtime/placer.cc:927] b: (Const)/job:localhost/replica:0/task:0/device:GPU:0
其中/device:GPU:0 就是正在使用GPU執行tensorflow!!!
我下載紅框的部分 cuDNN v7.4.1(Nov 8. 2018) for CUDA 9.2
下載後解壓縮會得到三個資料夾 : bin, include, lib
將這三個資料夾複製到下面路徑底下
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2
測試是否使用GPU
我是使用pycharm IDE,在編譯環境選擇剛剛在conda下新增的"pypy"環境,輸入測試程式碼:import tensorflow as tf # Creates a graph. a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a') b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b') c = tf.matmul(a, b) # Creates a session with log_device_placement set to True. sess = tf.Session(config=tf.ConfigProto(log_device_placement=True)) # Runs the op. print(sess.run(c))
會得到以下這些訊息:
a: (Const): /job:localhost/replica:0/task:0/device:GPU:0
b: (Const): /job:localhost/replica:0/task:0/device:GPU:0
2019-01-10 23:41:18.286498: I tensorflow/core/common_runtime/placer.cc:927] a: (Const)/job:localhost/replica:0/task:0/device:GPU:0
2019-01-10 23:41:18.286963: I tensorflow/core/common_runtime/placer.cc:927] b: (Const)/job:localhost/replica:0/task:0/device:GPU:0
其中/device:GPU:0 就是正在使用GPU執行tensorflow!!!
沒有留言:
張貼留言