1.安裝、卸載TensorFlow
- 查詢tensorflow的版本
pip list | grep tensorflow
- 卸載tensorflow
pip uninstall tensorflow-gpu
- 安裝指定版本的TensorFlow
pip install tensorflow-gpu==1.13.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
- 驗證是否安裝成功
import tensorflow as tf
print(tf.test.is_gpu_available())
tips:你可以把你需要安裝的所有庫名稱寫到一個txt文本中,像下面那樣
pypng
opencv-python
opencv-contrib-python
wheel
scikit-learn
tensorflow-gpu==1.9.0
keras==2.2.1
matplotlib
prettytable
ptable
然后使用pip install -r requirements.txt命令就可以批量安裝這些庫了。
2.顯卡驅動
- 查詢顯卡信息
lspci | grep -i nvidia
或
sudo lshw -numeric -C display
可以看到類似product: GM107M [GeForce GTX 850M] [10DE:1391]的信息.(網上說能看到,反正我沒看到)
- 如果已經安裝了對應的顯卡驅動可以采用下面命令
nvidia-smi
- 查看安裝的顯卡的驅動信息
cat /proc/driver/nvidia/version
- 查看cudnn版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
3.安裝顯卡驅動
-
如果尚未安裝顯卡驅動,則進行安裝
-
- 如果需要卸載舊版本的顯卡驅動,采用以下命令
-
sudo apt-get remove --purge nvidia*
-
此外,安裝之前,需要先禁用一個東西nouveau
sudo vim /etc/modprobe.d/blacklist.conf
在文件的最后面加入以下的內容:
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
檢查操作是否成功:lsmod | grep nouveau沒顯示即成功。
顯卡驅動的安裝比較簡單,直接到官網進行對應的驅動的下載。點我下載
注意在驅動的下載那里,操作系統的選擇直接選擇LInux-xbit即可,這個是可以搜索得到的,如果選擇ubuntu16等搜不到。親測直接搜索Linux 64-bit安裝有效可用!
將下載好的顯卡驅動上傳到服務器進行安裝。
sudo ./NVIDIA-Linux-x86_64-430.34.run采用該命令進行驅動的安裝。安裝完成之后,可以采用以下命令進行檢查:nvidia-smi
4.CUDA安裝以及cudnn安裝
這里需要注意的是,最好在安裝顯卡驅動的時候選擇對應的 cuda版本(即上面安裝驅動時選擇的CUDA toolkit)。然后在安裝cuda的時候,版本盡量保持一致,雖然高版本的驅動可以兼容低版本的cuda。
下載對應版本的cuda。cuda各個版本下載點我哦。由於這個網站的入口比較難找,大家最好保存起來哦。
進去之后選擇對應的版本。
安裝過程中的選擇項:
-
- nvidia accelerated graphics driver ,n 。因為我們已經安裝過。
- 其他的都選yes。
- 軟連接的建立。注意還有一個選項是軟連接的建立,會在/usr/local/下面建立一個軟連接cuda該軟連接連接到安裝的真正的cuda-10.0的地址。軟連接的建立可以用於多個版本的cuda的管理。
-
- 如圖所示的,黃色的cuda是一個軟連接,紅色的是多個安裝好的CUDA修改軟連接就可以修改cuda的版本。
安裝完成之后,采用nvcc -V對安裝進行檢查。
如果提示沒有找到對應的命令的話,需要進行環境變量的配置。這里我們按照假設建立的cuda的軟連接的方式進行配置:sudo vim ~/.bashrc加入以下的內容:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
使之生效:source ~/.bashrc
之后再使用nvcc -V
多版本的CUDA管理。其實很簡單,就是那個軟連接的管理,例如我需要其他版本的cuda,由於我的環境比變量直接指向的是一個軟連接,因此我可以刪除舊的軟連接再建立新的軟連接的方式來實現不同版本的cuda的切換。
sudo rm -rf cuda # 刪除舊版本的軟連接
sudo ln -s /usr/local/cuda-9.1 /usr/local/cuda # 建立新版本的軟連接,前面的路徑是需要的版本的cuda的安裝路徑。
安裝對應的cudnn。根據cuda版本選擇對應的cudnn進行安裝。點我進行下載
進去之后花花綠綠的什么鬼一大堆,如果采用安裝的方式的話,需要每個版本的操作系統需要下載3個deb文件,就很煩。因此我們直接下載箭頭對應的版本,改文件的后綴是cudnn-10.0-linux-x64-v7.3.0.29.solitairetheme8這種也是tgz。將下載來的文件進行解壓即可。
cp cudnn-10.0-linux-x64-v7.3.0.29.solitairetheme8 cudnn-10.0-linux-x64-v7.3.0.29.tgz # 換后綴
tar -xvf cudnn-8.0-linux-x64-v5.1.tgz # 解壓
解壓之后得到一個 cuda文件夾。采用如下的操作進行cudnn的安裝。(這時候的cudnn要直接安裝到對應的版本的cuda的真實的安裝路徑中。這樣建立軟連接的時候才會讀到cudnn文件)
sudo cp cuda/include/cudnn.h /usr/local/cuda-xx.x/include # 填寫對應的版本的cuda路徑
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-xx.x/lib64 # 填寫對應的版本的cuda路徑
sudo chmod a+r /usr/local/cuda-xx.xx/include/cudnn.h /usr/local/cuda-xx.xx/lib64/libcudnn*
如果喜歡采用deb的安裝方式的,參見
5.卸載CUDA和cudnn
在你的安裝目錄/usr/local/cuda-9.1/bin/里,應該會有一個uninstall_cuda_X.X.pl文件,直接運行這個文件
./uninstall_cuda_9.1.pl
如果沒有該文件,可以嘗試以下步驟:
sudo apt-get remove cuda
sudo apt-get autoclean
sudo apt-get remove cuda*
cd /usr/local/
sudo rm -r cuda-9.1
卸載之后,會發現 /usr/local/cuda-9.1目錄下任然有文件存在,這是cudnn文件,所以還需要將cuda-9.1文件刪除干凈:
rm -rf /usr/local/cuda-9.1
如果你不想卸載CUDA,而是想卸載Cudnn,執行以下命令
sudo rm -rf /usr/local/cuda/include/cudnn.h
sudo rm -rf /usr/local/cuda/lib64/libcudnn
6.linux下TensorFlow和CUDA對應關系
官網:https://tensorflow.google.cn/install/source