寫在前面的話
如果有想簡單安裝的小夥伴,請直接從後面安裝tensorflow開始看。。。因爲用conda安裝會特別簡單…
目錄
1、安裝顯卡驅動
在軟件商店的右上角位置點擊軟件和更新
找到附加驅動,選擇這個
然後點擊應用更改。
查閱資料發現,X.org適合老版顯卡,所以最好裝閉源驅動。
查看可以用的驅動:ubuntu-drivers devices
選擇推薦的440。
檢查:
sudo /usr/bin/nvidia-settings
提示:根據博客Dell-1080Ti 深度學習Win 10 + Ubuntu 16.04.02 雙系統安裝+anaconda2+tensorflow+opencv3.2+caffe,prime是軟件選擇獨顯還是集成顯卡,這裏不影響使用。
2、cuda安裝
cuda簡介
何爲cuda?
CUDA(Compute Unified Device Architecture)是一個新的基礎架構,這個架構可以使用GPU來解決商業、工業以及科學方面的複雜計算問題。它是一個完整的GPU解決方案,提供了…基於CUDA開發的程序代碼在實際執行中分爲兩種,一種是運行在CPU上的宿主代碼(Host Code),一種是運行在GPU上的設備代碼(Device Code)…
詳見哪些NVIDIA顯卡支持CUDA技術? CUDA技術是什麼,視頻轉換提速啦
查看顯卡型號:lspci | grep -i nvidia
我的顯卡是GTX960m
選擇cuda9系列
根據下圖再結合之前選擇的顯卡驅動版本440,因此我可以選擇的cuda版本爲7-9.2
由上圖,cuda9官方提示支持ubutnu16.17。查閱資料,高版本可以兼容第版本,所以選擇版本的時候可以選擇16.04。
我選擇的是cuda9.1(ps:建議不要選擇9.1,因爲cudnn18年以後不提供這個版本的更新cudnn包,建議選擇9.2或9.0。下面已經改成9.0)
下方的這三個都需要需要下載,第一個是主文件,下面三個是補丁。
下載完成,先關機再開機看看有沒有什麼異常。。。
可以啓動。。。
(1)、gcc降級
由於9.1版本cuda不支持ubutnu預裝的gcc7,所以需要降級gcc
sudo apt-get install gcc-6#安裝6
sudo apt-get install g++-6
cd /usr/bin
ls -l gcc*
sudo mv gcc gcc.bak #備份
sudo ln -s gcc-6 gcc #重新鏈接
sudo mv g++ g++.bak#備份
sudo ln -s g++-6 g++#重新鏈接
進入下載的cuda文件終端,運行
(2)、安裝cuda
sudo sh cuda_9.1.85_387.26_linux.run
接下來會顯示一個文檔界面,需要一直按空格讀完。
最後會有讓你選擇的命令
ps:由上圖可知,cuda文件夾裏的東西是cuda-9.1的link。
因爲這裏我們之前已經裝了顯卡驅動,所以在是否安裝驅動那裏選擇no。
等待安裝…
然後繼續安裝補丁
sudo sh cuda_9.1.85.1_linux.run
sudo sh cuda_9.1.85.2_linux.run
sudo sh cuda_9.1.85.3_linux.run
(3)、添加環境變量
sudo vim ~/.bashrc
在家目錄下添加進環境變量
export PATH=/usr/local/cuda-9.1/bin${PATH:+:$PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
添加在最後即可
保存後
source ~/.bashrc
(4)、測試cuda
測試cuda:
在/usr/local/cuda-9.1/samples/終端中執行
sudo make
make的基本用處是自動根據makefile裏的指令來編譯源文件.
這個過程大約需要10分鐘以上。
運行結束後,進入/usr/local/cuda-9.1/samples/1_Utilities終端
運行
./deviceQuery/deviceQuery
最後 nvcc -V
結果如下:
安裝成功
3、安裝cuDNN
cuDNN簡介
什麼是cuDNN?
NVIDIA cuDNN是用於深度神經網絡的GPU加速庫。它強調性能、易用性和低內存開銷…
什麼是CUDA與CUDNN
tensorflow、CUDA、Cudnn版本對應關係
(1)、版本選擇
下載對應cuda版本的cudnn
https://developer.nvidia.com/rdp/cudnn-download
點擊Archived Releases
安裝cuda版本爲9.1,因此此處選擇for 9.1。選擇for linux版本。
(2)、安裝
解壓後複製文件到cuda安裝位置。
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda-9.1/lib64/
sudo cp cuda/include/cudnn.h /usr/local/cuda-9.1/include/
增加讀寫權限
sudo chmod a+r /usr/local/cuda-9.1/include/cudnn.h
sudo chmod a+r /usr/local/cuda-9.1/lib64/libcudnn*
4、安裝Anaconda
Anaconda簡介
Anaconda是什麼?
1、Anaconda指的是一個開源的Python發行版本,其包含了conda、Python等180多個科學包及其依賴項…anaconda (開源的Python包管理器)
2、Anaconda是一個方便的python包管理和環境管理軟件,一般用來配置不同的項目環境。
我們常常會遇到這樣的情況,正在做的項目A和項目B分別基於python2和python3,而第電腦只能安裝一個環境,這個時候Anaconda就派上了用場,它可以創建多個互不干擾的環境,分別運行不同版本的軟件包,以達到兼容的目的…Anaconda簡單入門
3、關於conda和anaconda不可不知的誤解和事實——conda必知必會
(1)、版本選擇及安裝
官網地址
https://www.anaconda.com/distribution/
由於我的電腦python爲3.6,但是在官網上只有3.7和2.7版本,因此需要通過歷史文件安裝。如下:
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
版本選擇中參見Anaconda python3.6版本安裝,即選擇Anaconda 5.2。
!!!此處注意,需要下載3-5.2,因爲2-5.2安裝的是python2.7…入坑。以下是2-5.2安裝過程,3-5.2步驟一致。
(ps:卸載只需要卸載家目錄下自己用戶名下的anaconda,然後把環境變量中新增加的刪掉,再重啓服務:source ~/.bashrc 就可以)
下載完畢後在文件所在終端執行:
bash Anaconda2-5.2.0-Linux-x86.sh
之後也是需要空格讀完須知,然後一些交互界面,填yes和enter就可以。
這裏提示是否安裝vs,選擇no(因爲我有pycharm)
最後需要加入環境變量,這樣python才能查看conda版本號,以及查看現在python版本,注意ubuntu自帶python是python3才能執行。
export PATH="/home/xiaoshumiao/anaconda2/bin:$PATH"
!!!ps:在重新安裝的anaconda3中,會自動提示是否加入環境變量。輸入yes即可。
然後重開一個終端,或者source ~/.bashrc 就可以。
get.
(2)、更改軟件源
爲其添加國內源。
直接在家目錄終端運行以下即可:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
現在用的都是anaconda的pip,和python。爲pip添加國內源:
如果沒有~/.pip/pip.conf這個文件,可以創建一個。注意,首先創建一個文件夾:
mkdir .pip
sudo vi ~/.pip/pip.conf
在文本中輸入
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=https://pypi.tuna.tsinghua.edu.cn
更新conda
conda update conda
5、安裝tensorflow
(1)、版本選擇
tensorflow是什麼相信不用說了。
https://tensorflow.google.cn/install/source#linux這裏可以看到對應的版本
確認需要安裝的版本是tensorflow1.12
(2)、創建虛擬環境
創建虛擬環境,對的。是虛擬環境,anaconda可以創建互不影響的python環境,也就是說你的tensorflow只會安裝在你指定的虛擬環境中。這裏創建的虛擬環境名字叫tensorflow_gpu
conda create -n tensorflow_gpu python=3.6
激活虛擬環境(tensorflow)
source activate tensorflow_gpu
用conda安裝tensorflow
conda install tensorflow-gpu==1.12
(3)、小插曲
!!!wc,用anaconda真的可以只安裝tensorflow就可以,因爲cuda和cudnn他自動給你安裝了。。。
好奇,因此,爲了不讓自己這麼長時間白費,我決定卸載,用pip之狀tensorflow,噗…一口老血
保險期間我把這個虛擬環境刪除了。
查看虛擬環境:conda info -e
可。
(4)、pip安裝tensorflow
在
http://mirrors.aliyun.com/pypi/simple/tensorflow-gpu/
中下載whl文件,cp36就是python3.6的意思。
下載後在新建的虛擬環境中用pip安裝:
pip install /home/xiaoshumiao/tensorflow_gpu-1.12.0-cp36-cp36m-manylinux1_x86_64.whl
退出虛擬環境:
source deactivate tensorflow_gpu
6、pycharm測試
環境選擇已經存在的這個虛擬環境
/home/xiaoshumiao/anaconda3/envs/tensorflow_gpu/bin/python
7、問題及解決
不兼容,,,重裝cuda9.0。。。(事實證明可能並不是這個原因)
卸載:
sudo /usr/local/cuda-9.1/bin/uninstall_cuda_9.1.pl
sudo rm -rf /usr/local/cuda-9.1
以同樣方式安裝cuda19.0 還是一樣問題…
但是偶然發現,不對啊,僅僅是import就會出現這個問題,還沒有檢驗呢。
一個偶然的機會,看到了一個教程。
!!!
sudo ldconfig /usr/local/cuda/lib64
然後再運行檢測代碼
可。
9、代碼方面
GPU介紹及TensorFlow如何使用GPU跑程序
tensorflow的GPU加速計算
總結
最後建議
1.安裝tensorflow 0系列(保險起見,當然,沒有道理…)
2.要選擇cudnn一直更新且成熟的cuda
3.環境變量以及sudo ldconfig /usr/local/cuda/lib64
4.我的安裝配置是
9、安利
最後安利下,我的ubutnu是安裝在移動硬盤中的,如果感興趣這個方案,可以去看我的另一篇博客,或許能少走彎路
移動硬盤SSD安裝ubuntu18.04