一、下載下傳安裝anaconda
推薦到清華鏡像站下載下傳anaconda,下載下傳後按照提示一步步安裝即可。安裝過程中,這裡提個小建議,下圖的第一個框不要勾選,等安裝完再手動添加anaconda的環境變量。具體做法是将anaconda安裝目錄下的Script檔案夾路徑添加到系統環境變量(path)即可,不明白的可以百度。
二、安裝cuda和cudnn
1.檢視自己電腦的顯示卡和支援的cuda版本
2.下載下傳安裝cuda
到 英偉達官網下載下傳對應版本的cuda:
下載下傳完成後,到控制台->解除安裝程式中,将原有的NVIDIA驅動全部解除安裝,即有下面這種綠色圖示的:
解除安裝完畢後,重新開機電腦。然後開始安裝cuda,按照提示一步步安裝即可,這裡提個建議,就是下面這步選自定義,這樣可以修改安裝路徑,選精簡的話預設安裝到C槽中了。
沒有意外的話,cuda就算是安裝完畢了。
3.安裝cudnn
首先,到官網下載下傳與cuda版本對應的cudnn,可以參考如下圖檔:(注意,下載下傳cudnn需要登入NVIDIA賬号,沒有的注冊一個即可,很簡單)
下載下傳完畢後,将cudnn壓縮包解壓,得到如下三個檔案夾:
然後将這三個檔案夾複制到cuda的安裝目錄下:
至此,cuda和cudnn安裝完畢。
三、安裝tensorflow-gpu
1.更換conda源和pip源
更換conda源的目的是為了以後下載下傳檔案更快,具體做法可以百度,也可以按照下方指令在anaconda prompt中逐行運作來更換為清華源:(可以參照observador 部落客的這篇文章)
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
conda config --set show_channel_urls yes
同理,更換pip源,參照Chaser_LittleBee 部落客的這篇文章。
2.安裝tensorflow
首先,打開anaconda prompt,輸入如下指令建立一個名為”tensorflow-gpu“的虛拟環境:
conda create --name tensorflow-gpu python=3.6
# 或者
conda create -n tensorflow-gpu python=3.6
然後,激活該虛拟環境:
activate tensorflow-gpu
更新pip到最新版,防止安裝時出現錯誤:
python -m pip install --upgrade pip
接着,輸入如下指令安裝GPU版本的tensorflow:
補充:後來改用2.1.0了,指令改為如下:
上面的tensorflow版本參照如下圖檔:
若碰到類似清華源的url沒有所選tensorflow的版本的錯誤時,根據提示更換為有的版本即可。
3.驗證是否安裝成功
首先進入tensorflow-gpu虛拟環境,然後逐行運作以下指令:
import tensorflow as tf
hello = tf.constant('Hello, Tensorflow!')
sess = tf.Session()
print(sess.run(hello))
不出意外的話,會輸出:
b' Hello, Tensorflow
說明安裝成功。
補充:2.1.0版本驗證方法:
import tensorflow as tf
tf.compat.v1.disable_eager_execution()
hello = tf.constant('hello,tensorflow')
sess= tf.compat.v1.Session()
print(sess.run(hello))
需要說明的是,高版本的tensorflow對“sess = tf.Session()”指令可能會報錯,原因是替換成了其他寫法。由于本人也是小白一枚,在此就不作說明,感興趣的可自行百度。