Ubuntu18.04安裝Tensorflow-gpu如此多坑,這篇文章將拯救你于水火之中

摘要

Ubuntu18.04安裝Tensorflow-gpu,坑成馬。
不想踩坑?有緣千里來(lái)相會(huì),這篇文章將梳理出作者遇到的所有天坑。
對(duì)于下列問(wèn)題,你可以在本文中找到答案

  • 安裝Nvidia驅(qū)動(dòng)時(shí)提示顯卡被占用?
  • 安裝Nvidia驅(qū)動(dòng)時(shí)提示gcc版本太高?
  • 安裝Nvidia驅(qū)動(dòng)的正確姿勢(shì)?
  • 驅(qū)動(dòng)裝炸了,卸載Nvidia驅(qū)動(dòng)的正確姿勢(shì)?
  • CUDA安裝與配置的正確姿勢(shì)?
  • cnDNN安裝與配置的正確姿勢(shì)?

前排提醒!!!

如果Ubuntu提示系統(tǒng)升級(jí),千萬(wàn)不要點(diǎn)!千萬(wàn)不要點(diǎn)!千萬(wàn)不要點(diǎn)!一鍵爆炸了解一下。

正文

組件版本:

Operating System : Unbuntu 18.04 LTS
Nvidia Graphic Card : Nvidia 940MX
Nvidia Driver: NVIDIA-Linux-x86_64-410.78
CUDA :  CUDA 9.0
cuDNN : cuDNN 7.1.4
Tensorflow : 1.5.0 GPU Version

請(qǐng)保證你的系統(tǒng)是純凈的,安裝過(guò)后沒(méi)有進(jìn)行過(guò)任何多余操作


  1. 禁用預(yù)安裝的nouveau驅(qū)動(dòng)

    用下面的指令創(chuàng)建新文件blacklist-nouveau.conf*

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

    并添加如下內(nèi)容

     blacklist nouveau
     options nouveau modeset=0
    

    Okay. 關(guān)閉文件,執(zhí)行下列命令,重啟。

     sudo update-initramfs -u
     sudo reboot
    

    重啟完成后,用下面這個(gè)命令,檢驗(yàn)nouveau是否已經(jīng)被禁用了。

     lspci | grep nouveau
    

    如果被禁用了,那么terminal里不會(huì)輸出任何東西。


  1. 安裝 gcc 6

    從CUDA 4.1版本開(kāi)始,現(xiàn)在支持gcc 4.5。gcc 4.6和4.7不受支持
    從CUDA 5.0版本開(kāi)始,現(xiàn)在支持gcc 4.6。gcc 4.7不受支持
    從CUDA 6.0版本開(kāi)始,現(xiàn)在支持gcc 4.7
    從CUDA 7.0版本開(kāi)始,完全支持gcc 4.8,在Ubuntu 14.04和Fedora 21上支持4.9
    從CUDA 7.5版開(kāi)始,完全支持gcc 4.8,在Ubuntu 14.04和Fedora 21上支持4.9
    從CUDA 8版本開(kāi)始,Ubuntu 16.06和Fedora 23完全支持gcc 5.3
    從CUDA 9版本開(kāi)始,Ubuntu 16.04,Ubuntu 17.04和Fedora 25完全支持gcc 6
    CUDA 9在CUDA中不支持gcc 7

    作者執(zhí)筆寫(xiě)這篇文章時(shí),Ubuntu18.04 LTS自帶的gcc版本是7.3.0。CUDA9.0是不支持gcc 7的。因此你需要安裝一個(gè)低版本的gcc。在這里我選用gcc 6,下列命令可用于安裝gcc 6。

     sudo apt-get install gcc-6
     sudo apt-get install g++-6
    

    建立 soft link :

     sudo ln -s /usr/bin/gcc-6 /usr/local/bin/gcc
     sudo ln -s /usr/bin/g++-6 /usr/local/bin/g++
    

    此時(shí)你應(yīng)該已經(jīng)可以在terminal里調(diào)用gcc了,用下面的命令進(jìn)行測(cè)試。

      gcc --version
    


  1. 安裝Nvidia驅(qū)動(dòng)

    根據(jù)你顯卡的型號(hào),去Nvidia官網(wǎng)下載對(duì)應(yīng)驅(qū)動(dòng)安裝程序的runfile版本。

    Ctrl + Alt + F3,進(jìn)入文本命令行。登錄,使用下面的兩行指令終止GUI操作。對(duì)于Ubuntu18.04來(lái)說(shuō),第二行應(yīng)該管用。

     sudo service lightdm stop
     sudo service gdm3 stop
    

    用如下指令運(yùn)行.run文件

     sudo $DRIVER_DIR/NVIDIA-Linux-x86_64-410.78.run
    

    如果你發(fā)現(xiàn)不能運(yùn)行,在運(yùn)行之前,嘗試用先用下面的指令

     chmod u+x $DRIVER_DIR/NVIDIA-Linux-x86_64-410.78.run
    

    你可能會(huì)發(fā)現(xiàn)安裝程序會(huì)提示你缺少很多依賴,例如make。按照安裝程序的指示,用apt把該裝的都裝了。等所有依賴都安裝完畢,你應(yīng)該就可以順利安裝驅(qū)動(dòng)了。期間你可能會(huì)遇到各種各樣的提示框,說(shuō)的還很嚇人。在下也不懂。選YES就是了,反正是純凈系統(tǒng),大不了重頭再來(lái)。

    安裝完成后,用下面的指令測(cè)試是否安裝成功。

     nvidia-smi
    


  1. 安裝 CUDA 9.0

    根據(jù)你所要使用的Tensorflow版本選擇對(duì)應(yīng)的CUDA的runfile安裝程序下載。

    tensorflow-gpu v1.9.0 | cuda9.0 | cuDNN7.1.4可行 | 備注:7.0.4/ 7.0.5/ 7.1.2不明確
    tensorflow-gpu v1.8.0 | cuda9.0 | cuDNN 不明確 | 備注:7.0.4/ 7.0.5/ 7.1.2/ 7.1.4
    tensorflow-gpu v1.7.0 | cuda9.0 | cuDNN 不明確 | 備注:7.0.4/ 7.0.5/ 7.1.2/ 7.1.4
    tensorflow-gpu v1.6.0 | cuda9.0 | cuDNN 不明確 | 備注:7.0.4/ 7.0.5/ 7.1.2/ 7.1.4
    tensorflow-gpu v1.5.0 | cuda9.0 | cuDNN 不明確 | 備注:7.0.4/ 7.0.5/ 7.1.2/ 7.1.4
    tensorflow-gpu v1.4.0 | cuda8.0 | cuDNN 6.0 | 備注:6.0正常使用, 7.0.5不能用,5.1未知
    tensorflow-gpu v1.3.0 | cuda8.0 | cuDNN 6.0 | 備注:6.0正常使用, 7.0.5不能用,5.1未知
    tensorflow-gpu v1.2.0 | cuda8.0 | cuDNN 5.1 | 備注:5.1正常使用, 6.0/ 7.0.5 未知
    tensorflow-gpu v1.1.0 | cuda8.0 | cuDNN 5.1 | 備注:5.1正常使用, 6.0/ 7.0.5 未知

    Ref: https://blog.csdn.net/lifuxian1994/article/details/81103530

    運(yùn)行

         sudo $CUDA_DIR/cuda_9.0.176_384.81_linux.run
    

    開(kāi)頭的協(xié)議太長(zhǎng),按空格加速跳過(guò)。之后你將進(jìn)行一系列的選擇,除了問(wèn)你 “是否要安裝CUDA自帶的Nvidia驅(qū)動(dòng)程序” 選NO之外, 其余全選YES。我們剛剛自己安裝了驅(qū)動(dòng),不用它的。

    順利安裝完成后,用下列指令將CUDA路徑加入系統(tǒng)變量

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

    上面的指令只能在當(dāng)前terminal有用。如果想永久設(shè)置,打開(kāi)下面的文件,并把上面兩行放到文件的最后。

     ~/.bashrc
    

    用下面的指令測(cè)試CUDA是否安裝成功

     nvcc --version
    

    你應(yīng)該可以得到nvcc編譯器對(duì)應(yīng)的版本信息


  1. 安裝Tensorflow-gpu

    我們使用pip安裝Tensorflow-gpu。pip 應(yīng)該沒(méi)有隨系統(tǒng)安裝,沒(méi)有pip的先用下面的指令安裝pip。

     sudo apt install python-pip
    

    然后執(zhí)行下面的指令安裝tensorflow-gpu 1.5.0

     pip install tensorflow-gpu==1.5.0
    

    如果你不加 '==1.5.0',將默認(rèn)安裝最新版本(本人執(zhí)筆時(shí)是1.12.0)
    安裝完成后,用下列指令測(cè)試tensorflow是否安裝成功。

    pip list
    

    你應(yīng)當(dāng)可以看到tensorflow-gpu 1.5.0在列表之中。但現(xiàn)在距離安裝完成還差一步之遙。

  2. 安裝 cuDNN

    下載cuDNN的Ubuntu版本的Runtime安裝程序(.deb格式文件)。下載完成后,雙擊即可安裝。

    現(xiàn)在,萬(wàn)事俱備,你可以用下面的python程序測(cè)試Tensorflow-gpu版本是否被成功安裝。

    import tensorflow as tf 
    sess = tf.Session() 
    a = tf.constant(1) 
    b = tf.constant(2) 
    print(sess.run(a+b)) 
    

    Expected output

     3
    

    If 3 is printed on your screen, congratulations! You are ready to go.

Follw My Wechat Official Account
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容