Ubuntu16.04 Tensorflow pytorch安裝超全記錄(GTX 1080ti---CUDA9.0---cuDNN下)以及pycharm安裝

系統:Ubuntu16.04

GPU: GTX 1080ti

CUDA 9.0

cuDNN v7.5.0 for CUDA 9.0

請大家看到教程不要一股腦悶頭就copy paste,前面安裝的CUDA和CUDNN的版本需要和tensorflow的版本相對應,下載的時候一定要注意呀!

如果大家只裝pytorch的話,做一、二、三、六、五步驟即可。

目錄

一、安裝NVIDIA驅動

1、下載驅動程序

2、禁用nouveau第三方驅動

3、安裝驅動

4、驗證

二、安裝CUDA

1、卸載CUDA

2、安裝CUDA 9.0版本

3、添加環境變量

4、運行CUDA自帶sample驗證是否安裝成功

三、安裝cuDNN

四、安裝tensorflow

1、切換python版本

2、安裝pip

3、安裝anaconda

4、tensorflow!!!

5、測試

參考

五、Pycharm安裝

六.Pytorch的安裝




一、安裝NVIDIA驅動

1、下載驅動程序

http://www.nvidia.cn/Download/index.aspx?lang=cn

選擇自己的顯卡型號

 

2、禁用nouveau第三方驅動

打開編輯配置文件:

sudo gedit /etc/modprobe.d/blacklist.conf

在最後一行添加:blacklist nouveau

執行命令更新:

sudo update-initramfs -u

重啓使之生效:

reboot

3、安裝驅動

重啓後按Ctrl+Alt+F1 進入命令行界面

執行命令:lsmod | grep nouveau

禁用X服務:sudo /etc/init.d/lightdm stop

給驅動run文件賦予可執行權限:sudo chmod a+x NVIDIA-Linux-x86_64-390.25.run (下載的驅動文件名)

安裝:sudo ./NVIDIA-Linux-x86_64-390.25.run -no-opengl-files

開啓X服務:sudo /etc/init.d/lightdm start

(記得先用手機拍個照片再去命令行哇!)

-----------------------------------------------------------------------------------------

P.S.

–no-opengl-files 只安裝驅動文件,不安裝OpenGL文件。這個參數最重要

–no-x-check 安裝驅動時不檢查X服務

–no-nouveau-check 安裝驅動時不檢查nouveau

-----------------------------------------------------------------------------------------

後面兩個參數可不加。

重啓:reboot

4、驗證

輸入命令:nvidia-smi

如果出現了驅動版本就表示安裝成功了。

二、安裝CUDA

     不建議安裝CUDA 9.1 ,建議安裝CUDA 9.0版本。官網提示CUDA9.1 需要的顯卡驅動必須至少是390以上版本,所以安裝了384顯卡驅動則需要安裝CUDA9.0。

     我一開始安裝最新的版本10.1的,但是安裝時報錯,日誌文件中提示:CUDA driver version is insufficient for CUDA runtime version。吐血。。。經過一番search才發現是CUDA版本太高了,應該裝9.0的!!!!因爲我的驅動是384的!!!

這是CUDA以往的各個版本下載地址:

https://developer.nvidia.com/cuda-toolkit-archive

對照表:

運行時版本   驅動版本
CUDA 9.1     387.xx
CUDA 9.0     384.xx
CUDA 8.0     375.xx (GA2)
CUDA 8.0     367.4x
CUDA 7.5     352.xx
CUDA 7.0     346.xx
CUDA 6.5     340.xx
CUDA 6.0     331.xx
CUDA 5.5     319.xx
CUDA 5.0     304.xx
CUDA 4.2     295.41
CUDA 4.1     285.05.33
CUDA 4.0     270.41.19
CUDA 3.2     260.19.26
CUDA 3.1     256.40
CUDA 3.0     195.36.15

1、卸載CUDA

(如果你沒有安裝錯版本,則不需要做這一步)

在目錄:

cd /usr/local/cuda-10.1/bin

有CUDA自帶的卸載工具cuda-uninstaller,使用命令:

sudo ./cuda-uninstaller

 

2、安裝CUDA 9.0版本

安裝時的選擇

-----------------
Do you accept the previously read EULA?
accept/decline/quit: accept

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?
(y)es/(n)o/(q)uit: n

Install the CUDA 9.0 Toolkit?
(y)es/(n)o/(q)uit: y

Enter Toolkit Location
 [ default is /usr/local/cuda-9.0 ]:

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y

Install the CUDA 9.0 Samples?
(y)es/(n)o/(q)uit: y

Enter CUDA Samples Location
 [ default is /home/zpp ]:

Installing the CUDA Toolkit in /usr/local/cuda-9.0 ...


3、添加環境變量

把cuda路徑添加到當前用戶的配置文件裏:

sudo gedit ~/.bashrc

將安裝路徑添加到文件末尾:

export PATH=/usr/local/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH

然後執行如下命令使路徑生效:

. ~/.bashrc

修改的時候會出現不支持設置屬性,我查了查說是正常現象可以忽略

 

4、運行CUDA自帶sample驗證是否安裝成功

cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery

最後result=PASS說明安裝成功噶!!

三、安裝cuDNN

下載鏈接:https://developer.nvidia.com/rdp/cudnn-download,需要註冊之後才能打開,

選擇 Download cuDNN v7.5.0 (Feb 21, 2019), for CUDA 9.0,然後選擇 cuDNN Library for Linux

下載下來之後解壓安裝,執行如下步驟:

tar -zxvf cudnn-9.0-linux-x64-v7.5.0.56.tgz

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/

sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ -d

sudo chmod a+r /usr/local/cuda/include/cudnn.h

sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

執行完如上命令之後,cuDNN 就安裝好了,這時我們可以發現在 /usr/local/cuda/include 目錄下就多了 cudnn.h 頭文件。 

終端中執行nvcc -V 顯示如下信息則表示成功

四、安裝tensorflow

1、切換python版本

(Ubuntu默認的是python 2.7版本,我想要使用python 3.6版本。)

1)添加源並更新

sudo add-apt-repository ppa:fkrull/deadsnakes
sudo apt-get update

2)安裝指定版本的python,可以更改成你需要的版本:

sudo apt-get install python3.6 python3.6-dev

安裝32位庫

sudo apt-get install libncurses5-dev

3)切換python版本:
安裝好後會在 /usr/bin/ 下出現 python3.6 這個可執行文件,現在需要切換版本(默認版本2.7)

設置python3.6的路徑,並設置優先級爲200,默認優先級最高的優先使用

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 200 

然後使用命令查看已添加的路徑和優先級:

sudo update-alternatives --config python

 

 

2、安裝pip

去官網複製get-pip.py腳本文件:https://bootstrap.pypa.io/get-pip.py
複製好以後,終端鍵入

sudo python get-pip.py

自動下載pip,安裝好pip後

終端鍵入 pip -V 查看,是否正確指向python3.6包的路徑並且結尾是否是python3.6 ,無誤後就可以安裝其他



當然,如果切換回python2.7也要運行安裝pip的命令

3、安裝anaconda

這裏有anaconda的各個版本,選擇自己適合的版本下載,我選擇的是Anaconda3-5.1.0-Linux-x86_64

https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

https://repo.anaconda.com/archive/

這兩個網站都可以下載,500多M,下載挺慢的。

下載好之後切換到下載路徑

cd /home/download

運行一下命令進行安裝:

bash Anaconda3-5.0.1-Linux-x86_64.sh

根據提示按回車,然後一路回車“--更多--”看完註冊信息,然後輸入yes接受註冊信息,

然後出現一個問題,一直讓我checking  Internet connectivity,但是我網絡狀態沒有問題呀,查看他提示的日誌文件

Checking Internet connectivity ...
   Please make sure you are connected to the internet!
   Check /home/zpp/anaconda3/vscode_inst.py.log for more info

打開/home/zpp/anaconda3/vscode_inst.py.log,可以看到錯誤提示:

ERROR:vscode_inst:haveInternet
Traceback (most recent call last):
  File "/home/zpp/anaconda3/pkgs/vscode_inst.py", line 141, in haveInternet
    assert r.status_code == 200
AssertionError

於是找到這個File "/home/zpp/anaconda3/pkgs/vscode_inst.py"的141行,看來是這個判別條件沒有滿足

既然我的機器是聯網的,那應該就是安裝中需要訪問的鏈接我無法訪問,看到代碼裏有一行:

VSCODE_ENDPOINT = 'https://vscode-update.azurewebsites.net/api/update/{}/stable/version'.format(VSCODE_SUBDIR) # NOQA

這裏要下載VSCODE,這個鏈接我打不開, https://vscode-update.azurewebsites.net/api/update/{}/stable/version

於是我自己下載了VSCODE並安裝,https://code.visualstudio.com/Download

選擇.deb文件,64位,下載完成後雙擊code_1.32.2-1552488294_amd64.deb文件進行安裝。

安裝完成後重新進行anaconda的安裝,注意在之前的命令後面加一個-u,可以覆蓋之前的未完成安裝的文件

bash Anaconda3-5.1.0-Linux-x86_64.sh -u

這樣 再次安裝anaconda就成功了,

Thank you for installing Anaconda3!

===========================================================================

Anaconda is partnered with Microsoft! Microsoft VSCode is a streamlined
code editor with support for development operations like debugging, task
running and version control.

To install Visual Studio Code, you will need:
  - Administrator Privileges
  - Internet connectivity

Visual Studio Code License: https://code.visualstudio.com/license

Do you wish to proceed with the installation of Microsoft VSCode? [yes|no]
>>> yes
Proceeding with installation of Microsoft VSCode
VSCode is already installed!

當他問我們希望安裝VScode嗎,我們輸入yes後他檢測到VScode已經安裝~~

至此anaconda安裝完成!!!真不容易呀~

但是當我運行anaconda -V查看是否安裝成功的時候

???明明上面寫着thank you for installing Anaconda3的呀!!嚇的我菊花一緊

然後我看到這句話的上一行 :For this change to become active ,you have to open a new terminal

哇!虛驚一場!!重新打開一個終端就行啦!

好險!!Anaconda 真真真安裝成功啦!

gedit ~/.bashrc查看環境變量,可以看到在我們之前手動添加的CUDA的環境變量後面已經自動添加了anaconda的環境變量了,如果沒有可以手動添加一下,然後source ~/.bashrc一下使之生效。

這樣我們在命令行輸入python就會默認打開anaconda3中的python了。

4、tensorflow!!!

1)創建Tensorflow的運行環境:

conda create -n tensorflow python=3.6

顯示環境創建在/home/zpp/anaconda3/envs/tensorflow

可能會有warning說有新的conda版本,不用管他。要下載安裝一些包:yes

Proceed ([y]/n)? y

然後經過漫長的等待,中間可能還會有這種問題:

An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.

我重新運行了一下就可以了。。不知道什麼原因,可能是網絡問題吧。

2)重新運行後都done了,根據提示我們activate環境:

source activate tensorflow

3)確定版本

確認一下python、pip、anaconda版本

python --version
pip --version
anaconda --version

根據自己的CUDA、cuDNN版本對照找到TensorFlow的版本:

官網上有對照版本:https://tensorflow.google.cn/install/source

貼個圖:注意這是linux GPU的哦~

確認CUDA、CUDNN的版本:(前兩個都是查看CUDA版本,最後一個查看CUDNN版本)

nvcc -V
cat /usr/local/cuda/version.txt
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

我推測:

根據:

#define CUDNN_MAJOR 7
#define CUDNN_MINOR 5
#define CUDNN_PATCHLEVEL 0

說明我的CUDNN版本是7.5.0的,恩就是這樣!

 關於GCC,只要是4.8版本以上的就行(gcc -V查看gcc版本)

我的CUDA是9.0的、CUDNN是7.5.0的,所以我可以用1.5.0及其以後的版本,

4)利用pip安裝TensorFlow 

https://pypi.org/project/tensorflow/1.12.0/#history

 選擇要安裝的版本會跳轉到project description頁面,在左上角藍色的框裏自動出現你要安裝版本的pip安裝代碼,複製到終端里加上gpu(不然安裝的就是CPU版的啦!!!我怎麼知道的??嗚嗚嗚)再運行:

pip install tensorflow-gpu==1.12.0

運行如下:

顯示successfully installed

不知道是不是最終安裝成功了,忐忑

5、測試

輸入pyhton進入python環境:(記得首先source activate tensorflow環境哦~)

import tensorflow as tf
hello = tf.constant('Hello Tensorflow')
sess = tf.Session()
print(sess.run(hello))

輸出‘Hello Tensorflow’說明安裝成功,但是爲啥會有個b呢???我沒有查到是什麼原因,大家知道的麻煩留言告訴我好嘛~

python
import tensorflow as tf
tf.__version__     (查看版本)
tf.__path__        (查看路徑)

至此!!!!終於安裝成功啦啦啦啦!!!!

 

另外還有基於virtualenv安裝的,有直接用Bazel利用源碼編譯安裝,我感覺用pip比較簡單。如果用pip安裝失敗的同學可能就要試一試編譯源代碼安裝了,這個在https://blog.csdn.net/u014797226/article/details/80229887中有介紹。

 

tips:

退出python:Ctrl+D或者quit

退出tensorflow環境,source deactivate

進入tensorflow環境,source activate tensorflow

 

關於卸載:

如果你也像我一樣不小心安裝了CPU版本的……

sudo pip3 uninstall tensorflow

這是卸載方法,重新安裝是會說路徑已存在,根據提示去那個路徑下把tensorflow那個文件夾刪了就行~~

 


參考其他大神的教程、記錄了自己遇到的問題,希望大家都能順利裝好~

參考的博文可能會有漏掉的,別罵我,我改!

前前後後歷經一週,課間擠時間來實驗室安裝,終於安裝成功了!!!!

室友們都以爲我戀愛了,早出晚歸時而沮喪時而雀躍

哈哈哈 我只是……裝了個tensorflow而已

 

祝大家學習進步呀~~

這裏是TensorFlow 官方文檔中文版,感覺會有用的~貼一下~

http://wiki.jikexueyuan.com/project/tensorflow-zh/


參考

tensorflow的CUDA driver version is insufficient for CUDA runtime version 問題解決方案

Ubuntu 16.04切換python版本安裝pip

Ubuntu 16.04安裝NVIDIA驅動

Ubuntu安裝Tensorflow(GPU版)

Ubuntu16.04下安裝python3.6詳細步驟及anaconda安裝

anaconda3安裝時解決VScode出錯的問題


更新:

五、Pycharm安裝

之前安裝好了tensorflow,接下來安裝pycharm

下載好安裝包https://www.jetbrains.com/pycharm/download/#section=linux

右擊提取到此處,cd到bin目錄

./pycharm.sh

 setting我選擇的不導入,然後安裝了ideavim和markdown的插件,這個看自己的需求。

https://www.z2blog.com/index.php/default/493.html


選擇解釋器,existing interpreter,注意選擇我們之前安裝tensorflow目錄下的解析器,應該會顯示(tensorflow),否則會用不了tensorflow的模塊。

 

測試:

手寫數字的識別案例:

數據:https://pan.baidu.com/s/1UC6uBPPOBzZhYvNV93RgNw#list/path=%2F

代碼:

    #!/usr/bin/python
    # -*- coding:utf-8 -*-
    # @Time   : 2018/3/30 0030 15:20
    # @Author : scw
    # @File   : writenumbercompute.py
    # 描述:進行手寫數字的識別的實例分析
    import tensorflow as tf
     
    from tensorflow.examples.tutorials.mnist import input_data
     
    # 獲取數據
    mnist = input_data.read_data_sets("E:/tensorflowdata/MNIST_data/", one_hot=True)
     
    print('訓練集信息:')
    print(mnist.train.images.shape,mnist.train.labels.shape)
    print('測試集信息:')
    print(mnist.test.images.shape,mnist.test.labels.shape)
    print('驗證集信息:')
    print(mnist.validation.images.shape,mnist.validation.labels.shape)
     
    # 構建圖
    sess = tf.InteractiveSession()
    x = tf.placeholder(tf.float32, [None, 784])
    W = tf.Variable(tf.zeros([784,10]))
    b = tf.Variable(tf.zeros([10]))
     
    y = tf.nn.softmax(tf.matmul(x,W) + b)
     
    y_ = tf.placeholder(tf.float32, [None,10])
    cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y),reduction_indices=[1]))
    train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
     
    # 進行訓練
    tf.global_variables_initializer().run()
     
    for i in range(1000):
      batch_xs, batch_ys = mnist.train.next_batch(100)
      train_step.run({x: batch_xs, y_: batch_ys})
     
    # 模型評估
    correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
    accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
     
    print('MNIST手寫圖片準確率:')
    print(accuracy.eval({x: mnist.test.images, y_: mnist.test.labels}))

結果運行如下:

 

 顯示了很多tensorflow的日誌信息,好煩哦,隨便搜了一個解決方法是加兩行代碼。

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'

嗯!!確實清淨了很多!!嘻嘻!!不過每次都加兩行代碼,很麻煩,不知道大家有沒有其他辦法,可以分享一下下~~


參考:

  1. https://www.cnblogs.com/huozf/p/9304396.html
  2. https://blog.csdn.net/u014044812/article/details/78727496
  3. https://blog.csdn.net/Cs_hnu_scw/article/details/79695347
  4. https://blog.csdn.net/re_psyche/article/details/86469595

 


六.Pytorch的安裝

由於需要又安裝了pytorch

如果是隻安裝pytorch不裝tensorflow的小朋友不進行步驟四即可。

官網在此:https://pytorch.org/

如果可以kx上網的小朋友直接選好自己的環境,copy它給的命令運行就行:

選擇cuda的版本就默認是GPU版的,選擇none則是CPU版的。

不能kx上網的就去清華開源鏡像網上下載:

https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/ 

我下載的是:

pytorch-0.4.1-py36_py35_py27__9.0.176_7.1.2_2.tar.bz2

torchvision-0.2.1-py36_1.tar.bz2

下載好之後解壓安裝:

conda install pytorch-0.4.1-py36_py35_py27__9.0.176_7.1.2_2.tar.bz2
conda install torchvision-0.2.1-py36_1.tar.bz2

 安裝完成,import檢驗一下:

import torch
import torchvision

print(torch.cuda.is_available())
#檢驗GPU是否可用

ok!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章