1. 程式人生 > >Ubuntu16.04配置TensorFlow———GPU版本(gtx1070+ubuntu16.01)

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環境,重新配置環境。其他的不用動。