搭建深度學習框架-win10 64位+CUDA 9.0+cuDNN v7.0.5 安裝
本人機械狗,研究生接觸到了機器視覺令我神往,雷軍不是說過:站在風口上,豬都能飛起來.能不能飛起來,看你小子本事了。
廢話不多說,摸著石頭過河的同時也要記下自己成長的足跡.第一次嘗試寫安裝教程的部落格,希望能幫助到需要的朋友.
0 檢視電腦系統版本(非常重要)
WIN+R->輸入winver,
系統版本號必須高於1703,否則CUDA9.0難以執行!!!!
1 安裝 NVIDIA 顯示卡驅動程式
下載地址:驅動程式
選擇適合自己電腦的顯示卡驅動下載
安裝很簡單,直接下一步就可以
預設安裝路徑: C:\NVIDIA\DisplayDriver\398.82\Win10_64\International
2 安裝CUDA 9.0
下載CUDA前,先確認GPU顯示卡所支援的CUDA版本,
控制面板-》NVIDIA控制面板-》幫助-》系統資訊-》元件-》nvidia.dll後面的cuda引數
請點選->詳情
下載地址->CUDA Toolkit Archive
選擇適合你的版本
選擇相對應的版本下載,線上安裝版1.5GB,離線安裝版14.5MB,先安裝基礎包,再安裝升級補丁。
使用管理員許可權安裝,一路預設。
安裝完成之後開啟命令列,輸入:nvcc -V檢視版本,如果出現以下類似資訊表示安裝成功。
安裝成功後,我的電腦上點右鍵,開啟屬性->高階系統設定->環境變數,可以看到系統中多了CUDA_PATH和CUDA_PATH_V9_0兩個環境變數
我們還需要新增如下幾個變數:
在使用者變數Path下新增:C:\ProgramData\NVIDIA GPU Computing Toolkit\v9.0
注:ProgramData是隱藏資料夾
在系統變數中新增如下幾個變數:
- CUDA_SDK_PATH = C:\ProgramData\NVIDIACorporation\CUDA Samples\v9.0
- CUDA_LIB_PATH = %CUDA_PATH%\lib\x64
- CUDA_BIN_PATH = %CUDA_PATH%\bin
- CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64
- CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64
新增完成後在cmd中輸入set cuda顯示如下:
3.安裝Cudnn
在官網下載對應Cuda的版本號,加壓將資料夾中的內容複製到cuda的安裝路徑下即可。
經過這三步已經搭建完成,最後一步則是安裝TensorFlow的GPU版本
4.TensorFlow的GPU安裝
這裡我整整拖了三個月,一個是學習Linux和課題壓力的原因,還有一個原因就是堅持很久的東西突然斷掉了就很不情願重新拾起,我要改掉這個惡習,
首先說明,anaconda預設的下載路徑是外國網址,下載速度很慢,首先將預設下載地址改成國內映象。
試了清華映象還是很慢,就是因為這個一直沒有頭緒,今天看到一個帖子說中科大的映象更好用更快!!!所以我重啟了今天的安裝過程,真的曲折呀~
開啟Anaconda Prompt,進入Anaconda命令列管理介面。
conda config –add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config –set show_channel_urls yes
開啟C盤使用者下的.condarc檔案刪掉第三行如下:
檢視是否生效,通過命令 conda info 檢視當前配置資訊,內容如下,即修改成功,關注 channel URLs 欄位內容
隨後以管理員身份執行命令列,輸入:
conda create -n tensorflow-gpu python=3.6
然後輸入y,紅框中會被下載
升級pip到最新版,防止稍後的安裝時,出現錯誤(筆者初次在安裝tensorflow時,沒有更新pip到最新版,導致下載到一半出現錯誤),輸入指令:
python -m pip install --upgrade pip
安裝tensorflow及相應依賴包,輸入指令:
pip install --ignore-installed --upgrade tensorflow-gpu
並不會成功,因為Python版本問題會出現異常報錯。將上面3.6改成3.5再來一遍就可以了。
真的好曲折啊寫這個帖子,但是確實學習到了很多
驗證
在命令列中,進入python,並輸入以下程式碼:
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))