Ubuntu 恢復 Cuda + cudnn + GPU driver + tensorflow 環境走過的坑

 

 

最近要重現YOLOv3 實時在線物體檢測算法,代碼要求Python3.6及以上由於Ubuntu 自帶的Python版本是3.5.2於是索性直接給卸掉了, 由於是Ubuntu自帶的版本, 可能系統需要用到裏面的組件,再次重啓系統的時候產生登陸循環login loop 問題。 

關於login loop 問題,看上一個帖子,在本機上已經解決

 

解決login loop 問題只是開始, 由於要恢復cuda + cudnn + tensorflow 的GPU計算環境 所以要重新考慮版本以及兼容性的問題

首先安裝python3.6版本, 以及如何設置爲默認選項

參考這篇帖子: https://www.cnblogs.com/yjlch1016/p/8641910.html

pip3 安裝 升級 卸載 

參考: https://blog.csdn.net/tiweeny/article/details/78384633

 

完了首先搭建好cuda + cudnn + 顯卡驅動的環境 然後再安裝tensorflow (個人認爲應按按照這個順序)

首先查看本機上的Nvidia 顯卡型號 :
sudo dpkg --list | grep nvidia-*

由於安裝cuda需要用到驅動程序中的代碼塊, 驅動安裝被內置爲cuda安裝的一部分,這樣就不會有cuda和驅動的兼容性問題, 自己安裝的驅動版本和cuda的版本不一定能兼容,建議首先卸掉自己本機上的驅動然後再安裝的cuda 

卸載驅動程序命令: 

sudo apt-get remove --purge nvidia-*

sudo apt-get autoremove 

sudo apt-get install -f  

sudo reboot 

注意: 只有第一個命令 是卸載驅動,如果同時使用了第二個第三個命令,會將已經安裝的CUDA全部卸載,卸載完驅動程序之後需要重啓電腦使之生效,註銷也行

現在安裝cuda 

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

進入Nvidia cuda-toolkit-archive 網站

挑選自己心儀的版本,最近剛出的CUDA-10.0 最新版本, 不推薦使用,因爲版本剛發佈,太新,很多其他的軟件包更新跟不上導致兼容性問題。 

在挑選完自己心儀的版本之後

根據提示首先下載,然後後面依次 有4個命令,前三個都沒有問題在terminal 輸入

注意第四個命令:sudo apt-get install cuda 

如果直接輸入這個命令無論選哪個版本的cuda 最後都會安裝最新的 cuda-10.0 版本

應該用: sudo apt-get install cuda-9-0    指定所要安裝的版本 

 

等待系統自動安裝大概需要15分鐘左右, Ubuntu 會在/usr/local 目錄下新建兩個文件夾

一個cuda  一個 cuda-9.0  安裝完畢

然後將cuda路徑添加到環境變量中

首先cd 回到主目錄

gedit ~/.bashrc       # 編輯 .bashrc 文件在後面添加兩行

$ export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}} 
$ export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64\${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

source ~/.bashrc    #  source 命令 使之生效 

然後測試 cuda 安裝成功與否, 運行cuda 自帶的sample 成功的話會看到GPU 運算的煙花

$ cd /usr/local/cuda-8.0/samples/5_Simulations/nbody
$ sudo make
$ ./nbody

接下來安裝cudnn, 網上下載適合自己的兼容的版本 這裏我用的是cudnn-9.0 版本

$ tar -xzvf cudnn-8.0-linux-x64-v5.1.tgz
$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

解壓,然後將相關文件添加到cuda文件夾中 ,至此tensorflow 所需要的文件環境就搭建起來了

中間的若干兼容性問題需要根據自己所有的版本型號進行搭配

 

現在安裝tensorflow 前面已經安裝python3.6 和 pip3  

使用pip3 包管理器直接安裝tensorflow-gpu 

pip3 install tensorflow-gpu  

直接使用這個命令 出現permission denied 的問題

pip3 install tensorflow-gpu --user 

解決

打開python  import tensorflow 測試安裝是否正確,已經GPU能不能使用

Python 進入python3.6 的界面 

import tensorflow 然後提示 導入錯誤

ImportError: libcudnn.so.7: cannot open shared object file: No such file or directory

 

libcudnn.so.7是cudnn的文件, tensorflow-gpu 安裝成功 但是 與 cudnn 發生連接錯誤, 這裏需要重新建立連接

2.CUDNN連接建立

 cd /usr/local/cuda/lib64

sudo rm -rf libcudnn.so libcudnn.so.7  #刪除原有版本號,版本號在cudnn/lib64中查詢

sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7 #生成軟連接,注意自己下載的版本號

sudo ln -s libcudnn.so.7 libcudnn.so 

sudo ldconfig #立即生效

 

測試 import tensorflow as tf 導入成功   

 

接下來安裝Pycharm 跑個CNN 

先在PyCharm官網下載安裝包 鏈接 : https://www.jetbrains.com/pycharm/download/#section=linux

下載 ubuntu版本

然後解壓到當前文件夾

cd Downloads/pycharm-2017.1.4/bin

sh ./pycharm.sh

然後跳出來安裝界面,然後根據自己喜好配置 

最後會出現這張圖,Create New Project  創建一個新項目

添加Python剛剛安裝好的python3.6解釋器 正常的話  就可以用GPU跑CNN了   

 

 

 

 

 

 

 

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