配置tensorflow-GPU(1.x)環境
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
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