Ubuntu16.04配置TensorFlow———GPU版本(gtx1070+ubuntu16.01)
博主研究了下,參考了別人的部落格,也出現了問題,然後解決。相信按照接下來的教程是可以很簡單的安裝TensorFlow-gpu的。
在開始之前,首先得了接大概步驟:1、安裝顯示卡驅動2、安裝cuda,3、安裝cudnn,4、安裝anaconda 5、建立虛擬TensorFlow環境並配置TensorFlow。6、測試是否成功。附加:安裝一般的配件庫。
註明:本文所有下載的東西博主都預設下載到了home資料夾中下載資料夾中。安裝與解壓時,請先cd到下載資料夾中。
1、安裝顯示卡驅動
在ubuntu16.04系統中選擇軟體更新中的附加驅動來更新驅動。具體操作:
開啟系統設定。找到軟體和更新,點進去出現如下介面:
然後點選附件驅動
安裝圖片點選即可,一定要確保已經聯網:完成後點應用更改。親測有效。
另外還有一種方法,不過前面方法已經可以解決:這個部落格部落格https://blog.csdn.net/qq_30520759/article/details/78947034
最後,檢查顯示卡驅動.]
開啟終端。輸入以下命令
nvidia-smi
結果如下所示。那個384.130即為你的顯示卡驅動的型號。
2、 安裝cuda
首先要了解的是cuda,cudnn,tensorflwo對應的TensorFlow的版本,不然就會出錯。相應的版本必須要對應。linux基本對應情況如下圖:
確認你要安裝的cudn,cudnn,tf的版本。
博主使用的配置是:cudn9,cudnn7,tensorflow-gpu.1.8.0。
先下載cudn:cuda下載 把他下載到home檔案下的下載資料夾中
正式安裝cudn:
a、進如home檔案下的下載資料夾中,開啟終端,輸入命令。
sudo sh cuda_..._linux.run 紅色部分為你下載的cuda版本,即下載的cuda檔案的名字
b、輸入命令後,回車,進入安裝。安裝過程中會讓你選擇yes or no 。第二個選項 Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26? 須選擇否,因為在之前已經安裝好了顯示卡驅動,無需重新安裝。具體按照下面的來選擇。
Do you accept the previously read EULA?
accept/decline/quit: accept
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26?
(y)es/(n)o/(q)uit: n
Install the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: y
Enter Toolkit Location
[ default is /usr/local/cuda-8.0 ]:
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y
Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: y
Enter CUDA Samples Location
[ default is /home/dexter ]:
一路進行,完成。
c、新增環境變數
在終端輸入: gedit ~/.bashrc
然後在開啟的檔案最後寫入:
export PATH="$PATH:/usr/local/cuda-9.0/bin"
export LD_LIBRARY_PATH="/usr/local/cuda-9cd.0/lib64"
劃重點:寫入的時候,一定要確認你的cuda版本號,我這裡是cuda9,則就是寫入上面的命令。若是你安裝的是cuda8,請把這條命令中9改為8.博主在第一次的時候就搞錯了,導致一直不成功。萬一和博主一樣這樣粗心,不要緊,在文字最後面也有解決方案。
儲存並關閉檔案,然後在終端輸入:source ~/.bashrc
如此使得環境更改生效。
d、cuda測試:
開啟終端,切換到位置:~/ NVIDIA_CUDA-9.0_Samples (同樣,你安裝的是什麼版本的cuda,就切換到那個資料夾中)
命令列輸入:make (此步編譯時間很長,有可能你會看到游標不動,不用理,因為確實要很久)
開啟終端,切換到位置:~/NVIDIA_CUDA-9.0_Samples/bin/x86_64/linux/release
終端輸入:./deviceQuery
如果顯示類似下圖,則說明CUDA安裝且配置成功!
3、cudnn安裝
cudnn安裝就較簡單了,基本上就是解壓,然後複製到具體資料夾中。具體如下:
首先下載cudnn:cudnn下載
進入下載檔案中,開啟終端輸入以下四條命令。輸入一條命令後按回車,接著輸入嚇一跳命令:
tar xvzf cudnn-9.0-...tgz (紅色部分為你下載的cudann版本,即下載的cudann檔案的名字)
sudo cp cuda/include/cudnn.h /usr/local/cuda-9.0/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-9.0/lib64
sudo chmod a+r /usr/local/cuda-9.0/include/cudnn.h /usr/local/cuda-9.0/lib64/libcudnn*
重點:一定要把9變成你所要安裝的cuda版本。博主是cuda9。或者直接手動輸入就不會錯。
相當於解壓縮+複製貼上,手動複製貼上也是沒問題的。到此cuDNN安裝完畢。
4、安裝anaconda
a、下載anaconda. 連結
下載如下版本。
b、安裝
進入annaconda下載的資料夾中,開啟終端,輸如命令:bash Anaconda...Linux-x86_64.sh (紅色部分為下載的anaconda版本檔名)
c、安裝時,出現讓你選擇yes or no ,則選yes。就會自動配置檔案,可是有的時候你選擇yes會一直顯示說讓你retry,說明這樣就是配置不成功。則需要手動配置,如下:
配置檔案: 將anaconda的bin目錄加入PATH,根據版本不同,也可能是~/anaconda3/bin
輸入命令: sudo gedit ~/.bashrc
接著就會自動開啟一個檔案
export PATH="$PATH:~/anaconda3/bin" 將此句填在bashrc檔案末尾中,然後儲存後關閉。
在輸入命令: source ~/.bashrc 使得更改配置生效
d:若是要解除安裝anaconda:
參考:https://blog.csdn.net/qq_22474567/article/details/54984257
(1)刪除整個anaconda目錄: rm -rf anaconda資料夾名
(2)清理下.bashrc中的Anaconda路徑:
1.到根目錄下,開啟終端並輸入:sudo gedit ~/.bashrc
2.在.bashrc檔案末尾用#號註釋掉之前新增的路徑(或直接刪除):
#export PATH=/home/lq/anaconda3/bin:$PATH
儲存並關閉檔案
3.使其立即生效,在終端執行:source ~/.bashrc
4.關閉終端,然後再重啟一個新的終端
5、建立虛擬TensorFlow環境並配置TensorFlow
a、使用conda指令建立虛擬環境
建立環境:開啟終端,輸入命令:conda create --name tf python=3.6 (注:tf是虛擬環境的名字,可以隨便取。3.6是你要安裝的Python版本,也可以指定)
環境建立完,就要啟用環境:輸入命令:source activate tf
附加:若要退出環境:則輸入:source deactivate
若需要刪除環境:conda remove -n tf --all
b、TensorFlow-gpu安裝
啟用環境後,在tf環境中,輸入如下命令中的任何一種命令即可:
conda install -c jjhelmus tensorflow-gpu (此版本可能較低,安裝後可能需要升級)
conda install -c jjhelmus/label/tflow_180 tensorflow-gpu (此版本是TensorFlow-gpu1.8.0版本,博主就是這個版本,推薦)
conda install -c jjhelmus/label/tflow_110_testing tensorflow-gpu
至此,所有配置已經完成,可以跳到第六步去試試是否正確。
還推薦一些其他的庫:
安裝keras:pip install keras
安裝opencv3:conda install -c https://conda.anaconda.org/menpo opencv3
6、測試是否成功
官網上的測試程式。對一個線性資料進行訓練的demo。
開啟終端,啟用環境後,輸入命令:vi test.py
把程式碼複製進去:
import tensorflow as tf
import numpy as np
# Create 100 phony x, y data points in NumPy, y = x * 0.1 + 0.3
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data * 0.1 + 0.3
# Try to find values for W and b that compute y_data = W * x_data + b
# (We know that W should be 0.1 and b 0.3, but TensorFlow will
# figure that out for us.)
W = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
b = tf.Variable(tf.zeros([1]))
y = W * x_data + b
# Minimize the mean squared errors.
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
# Before starting, initialize the variables. We will 'run' this first.
init = tf.initialize_all_variables()
# Launch the graph.
sess = tf.Session()
sess.run(init)
# Fit the line.
for step in range(201):
sess.run(train)
if step % 20 == 0:
print(step, sess.run(W), sess.run(b))
# Learns best fit is W: [0.1], b: [0.3]
儲存退出後。輸入命令:python test.py
出現如下介面即成功
成功,可以盡情嗨皮在TensorFlow的海洋裡了。
最後彩蛋:既然安裝了anaconda,順便也安裝下 spyder IDE。還有很常用的jupyter notebook.
開啟終端,啟用tf環境,輸入命令:
conda install spyder
conda install jupyter notebook
如此就都安裝了。開啟這些直接在輸入命令 spyder 回車既可以開啟。
備註:若是最後出現說CUDA driver version is insufficient for CUDA runtime version。
這個問題一個解決辦法是顯示卡驅動有問題,還有一個種可能,就是你在安裝的時候,安裝錯了版本,比如,你想安裝cuda9,可是你在配置的時候因為複製別人的程式碼(別人程式碼上寫著cuda8),導致你下載的cuda版本,與你配置環境的cuda版本不同。
解決辦法:去本博第二步C步驟那,開啟那個檔案,把版本號改成與你下載的cuda版本相同。然後重新編譯,就是需要重新進行第二步中的c,d兩步,然後解除安裝配置的虛擬TensorFlow環境,重新配置環境。其他的不用動。