1. 程式人生 > >大型總結:ubuntu18.04下tensorflow1.10-gpu安裝過程的無數坑

大型總結:ubuntu18.04下tensorflow1.10-gpu安裝過程的無數坑

因為是回顧,所以教程中就沒有配圖啦。 前後耗時兩個星期左右,每天都在error和warning中摸爬滾打,“import tensorflow”終於點亮的那一刻有種steam購物車免費全清的哲學感。 不過現在看回來,在無數的錯誤中也get到了不少新技能,算是成長了吧(笑)。

神舟Z7-KP7GT下windows10+ubuntu18.04的系統安裝與完善

ubuntu18.04系統安裝

我採用U盤燒錄安裝,先從官網下載ubuntu18.04: http://releases.ubuntu.com/18.04/?_ga=2.99976730.526829365.1537876915-1081461388.1537454172 最新版本的LTS有多少好處我就不說了,大家都懂。 以下操作基於windows10: 1.先下個UltraISO用於燒錄:https://www.ultraiso.com/ 2.把下好的ubuntu18.04的iso檔案刻錄到U盤裡; 3.右鍵“我的電腦”開啟磁碟管理器,壓縮卷,空間自行分配。我是分了110GB左右。 4.關機,狂按F2進入BIOS介面,把SECURE MODE給DISABLED掉,再把BOOT OPTION PRIORITY調成USB KEY第一,SAVE AND REBOOT; 5.這時開機後,就會進入全紫色的grub2.x的介面,能看到Try Ubuntu 和Ubuntu install。小技巧是先進入Try選項,然後在圖形介面下完成install,這樣可以聯網。注意:我的本本帶GTX1060,ubuntu對N卡的驅動支援是不太好的,直接enter選項1或2後會分分鐘卡機,只好強制關機。所以你需要把游標移到1或2後,按E進入編輯項,在quiet splash後輸入acpi=off(“- - -”可以刪掉,不影響)

6.安裝過程自己弄,可以參考這位博主的過程:https://blog.csdn.net/meccaendless/article/details/78354828 7.安裝到最後,眼看進度條君要光榮犧牲,突然報錯,說grub有錯什麼的,實在是煞風景。。。在這裡試過很多方法,最簡單穩定的就是boot repair了。這裡可以參考這位博主的文章:https://blog.csdn.net/u012260238/article/details/52713724 8.安裝完成。ps:以後進入系統會優先選擇ubuntu,當然你可以進BIOS自己改。

系統功能完善

1.ppa源更新 換成阿里雲源 deb http://mirrors.aliyun.com/ubuntu/

bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb
http://mirrors.aliyun.com/ubuntu/
bionic-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse12345678910 更新源和軟體 sudo apt-get update sudo apt-get upgrade 2.N卡驅動安裝 網上各種方法,沒用,由於以後裝cuda,所以直接在cuda那裡安裝。 3.IPV6科學上網 主要是把host檔案改改:https://github.com/lennylxx/ipv6-hosts hosts位於: /etc 4.美化 主要就是玩gnome

sudo apt install gnome-tweak-tool sudo apt install gnome-shell-extensions sudo apt install chrome-gnome-shell

anaconda+tensorflow-gpu安裝

anaconda3

tensorflow-gpu

cuda9.2

說實話,這麼多教程看過來,只有官方文件是最靠譜的。我就是照著官方文件一步步做下去的,一次pass,順便安好了GTX1060的驅動(版本為396) https://docs.nvidia.com/cuda/

cudnn7.2

tensorflow-1.10-gpu

在這裡非常感謝這位大神,這個教程非常詳細 https://www.solarck.com/compile-tensorflow-gpu.html 原始碼雖然編譯過程比較痛苦,但出了錯容易發現,能比較好地檢驗自己檔案的依賴關係有沒有錯誤。 我遇到的問題有: 1.報錯,找不到 libcubla9.2.so : 如果版本對應好了,就是因為PATH和LD_LIBRARY_PATH沒設定好。

sudo gedit ./bashrc #編輯 ~/.bashrc檔案,在文末追加 export PATH=/usr/local/cuda/bin:PATHexportLDLIBRARYPATH=/usr/local/cuda/extras/CUPTI/lib64:/usr/local/cuda/lib64:PATH export LD_LIBRARY_PATH=/usr/local/cuda/extras/CUPTI/lib64:/usr/local/cuda/lib64:LD_LIBRARY_PATH

2.配置更新,終端輸入ldconfig後說.so檔案不是符號連結: 刪除並重新建立連結就好 輸入“ln -sf 待連結檔案路徑 原連結檔案路徑“

題外話:pycharm下的tensorflow

如果你和我一樣,在終端輸入python,之後打入import tensorflow正常執行,但是開啟pycharm,在相同的python環境下卻找不到此module(tensorflow),那麼恭喜pycharm阿呸,都是pycharm搞的鬼。 終端使用bash的環境變數,而pycharm不使用。 終端使用bash的環境變數,而pycharm不使用。 終端使用bash的環境變數,而pycharm不使用。 事復三。 那怎麼辦呢? 很簡單,conda create一個虛擬環境就行,在這個虛擬環境下再pip install tensorflow的whl檔案就可以了。但問題是我在anaconda自帶的python環境裡也安裝了tensorflow,本想著tf配anaconda的各種庫在pycharm的智慧補齊下豈不美滋滋,事實證明我就是個傻x。 偏方:在pycahrm.sh裡強行export LD_LIBRARY_PATH,位置在start之前。這樣做偶爾行偶爾不行,待研究。

安裝過程的實用指令

最後把整個過程的各種指令(終端)寫上來,附帶解釋,也許能有點幫助。 .bashrc檔案中新增環境變數: export PATH=待新增路徑:$PATH 使配置立即生效: source .bashrc conda新增虛擬環境: conda create -n xxx python=x.x conda刪除虛擬環境: conda remove -n xxx --all conda呼叫和退出虛擬環境: soucre activate xxx source deactivate 更新動態連結庫: ldconfig 切換到超級使用者和退出超級使用者: sudo su exit 檢視N卡驅動詳細資訊: nvidia-smi 設定N卡驅動: nvidia-settings 檢視cuda版本: cat /usr/local/cuda/version.txt 檢視cudnn版本: cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 檢視tensorflow版本: python import tensorflow as tf print(tf.version) 檢視tensorflow路徑: python import tensorflow as tf print(tf.path)