本文記錄了在ubuntu20.04上搭建tensorflow的過程。以tensorflow1.12為例。
基礎環境
-
系統:ubuntu20.04 LTS
-
顯卡:2080Ti
-
顯卡驅動:安裝ubuntu系統時已自動安裝,如下圖
搭建過程
python環境
-
安裝conda
我使用了miniconda,下載鏈接為https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
下載需要的版本即可,也可以直接下載最新版執行安裝命令
sudo sh Miniconda3-latest-Linux-x86_64.sh
-
創建Python環境
conda create -n dev python=3.6.8
-
安裝tensorflow
進入dev環境中,安裝tensorflow
conda activate dev pip install tensorflow-gpu==1.12.0
Cuda安裝
-
下載cuda
cuda的官方地址為https://developer.nvidia.com/cuda-toolkit-archive
下載cuda時要注意cuda與tensorflow的版本對應關系,以及系統中的編譯器(gcc、g++)的版本,見下圖。
通常來說系統自帶的編譯器版本都比較高,需要進行降級,所以我又安裝了gcc-4.8、g++-4.8,參考的鏈接是https://blog.csdn.net/weixin_43876206/article/details/100923785、https://blog.csdn.net/sazass/article/details/110002469
-
安裝cuda
執行安裝命令
sudo sh cuda_9.0.176_384.81_linux.run
安裝過程中需要注意,開始安裝時會有一系列問題讓你輸入,其中有一個問題是是否需要安裝顯卡驅動,因為我這個系統中已經有了驅動,所以這里選擇了no。其他都是yes或默認即可,按需選擇。
-
設置環境變量
主目錄下的.bashrc文件末尾添加:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64 export PATH=$PATH:/usr/local/cuda-9.0/bin export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-9.0
然后使更改生效
source ~/.bashrc
安裝成功時,查看到的cuda版本信息如下:
然后cuda的patch包也逐一安裝
sudo sh cuda_9.0.176.1_linux.run sudo sh cuda_9.0.176.2_linux.run sudo sh cuda_9.0.176.3_linux.run sudo sh cuda_9.0.176.4_linux.run
-
可能遇到的問題
(1)安裝完會輸出安裝情況,如果提示Toolkit: Installation Failed. Using unsupported Compiler,說明是gcc的版本不對,需要降級。
(2)安裝后提示Missing recommended library: libGLU.so;Missing recommended library: libXmu.so等庫文件缺失,原因是缺少相關依賴庫,安裝依賴庫然后重新執行cuda安裝命令即可。
安裝依賴庫
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
CuDNN安裝
-
下載
下載時注意CuDNN與cuda的版本對應關系,我下載的是 cudnn-9.0-linux-x64-v7.6.5.32.tgz
下載鏈接為https://developer.nvidia.com/rdp/cudnn-archive#a-collapse731-10
-
安裝
安裝比較簡單,解壓縮,然后將文件移動至cuda目錄即可
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 sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
-
查看CuDNN版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
測試與常見問題
-
打開終端進入先前建立的Python環境測試,顯示如下是表示安裝成功
若報錯ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory,說明cuda版本與tensorflow不對應,需要重新安裝正確版本的cuda和cudnn
-
pycharm中報錯ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory,如下圖
需要修改運行配置,如下圖的位置填寫上
PYTHONUNBUFFERED=1;LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64;usr/local/lib