tensorflow深度学习服务器环境搭建
实验室新进了一台服务器,配置了 NVIDIA 1080Ti 显卡做深度学习使用。装好机器后,第一件事就是把 TensorFlow 的 GPU 环境配好。这里把当时搭建环境的过程和踩过的坑整理出来,给有类似需求的人做个参考。 操作系统是师兄刻好的ubuntu最新版本Ubuntu 18.04.1 LTS (可使用lsb_release -v查看),这种事当然第一件事就是谷歌了,发现一条setup-an-environment-for-machine-learning-and-deep-learning-with-anaconda-in-windows,接下来就是按照提示一步一步进行就是了。
先说明一下,这篇文章对应的是一套比较老的 TensorFlow + CUDA 组合,核心价值在于“版本兼容关系”这个思路,而不是让你在今天无脑照抄所有版本号。不同 TensorFlow 版本可用的 CUDA/cuDNN 组合并不一样,安装前最好先查官方兼容矩阵。
搭建过程一共分为6步
- 下载 Anaconda
- 安装 Anaconda; Python(ubuntu自带python3)
- 更新 Anaconda
- 安装 CUDA & cuDNN(cudnn不需要自己装)
- 安装TensorFlow & Kera
- CUDA版本切换(如果正常装好不需要)
1,2,3步都是常规且比较简单就可以完成的事情,这里就简单说一下了,
开始前先确认
- 你安装的是带 NVIDIA GPU 的机器,并且显卡驱动本身工作正常。
- 你准备安装的是和本文相近的旧版 TensorFlow GPU 环境,而不是当前最新版本。
- 你愿意先以“兼容优先”为目标,而不是一开始就追求所有组件都用最新版。
1.下载 Anaconda
到anacoda下载linux版python3.7版本,服务器是ubuntu18,所以下载的是python3.7版本

2.安装 Anaconda & Python(ubuntu自带python3)
bash Anaconda3-5.3.1-Linux-x86_64.sh
跟着提示就可以顺利安装了安装了,如果你向我一样使用zsh作为默认shell的话,所以需要将.bashrc下的anaconda安装时自动添加的以下代码

复制进.zshrc文件末尾,source ~/.zshrc完成调用,终端输入conda看到帮助说明装好了
3.更新anaconda
在终端输入以下命名更新conda
conda update conda
conda update --all
4.安装 CUDA & cuDNN
重点在于CUDA的安装以及cudnn的安装,在这一步我可是吃尽了苦头
这里我直接把正确的做法告诉大家
首先到英伟达开发者网站下载相应显卡的cuda9.0版本,这里由于tensorflow只能使用9.0(强调,官网默认是10.0版本的0-0这里就被坑了一圈)

下好cuda之后就简单了
sudo dpkg -i cuda-repo-ubuntu1704-9-0-local_9.0.176-1_amd64-deb
sudo apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda
安装好后,需要降低gcc版本,添加环境变量,使用以下命令完成
sudo apt install gcc-5 g++-5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 50
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:/usr/local/cuda/extras/CPUTI/lib64
export CUDA_HOME=/usr/local/cuda-9.0/bin
export PATH=$PATH:$LD_LIBRARY_PATH:$CUDA_HOME
cudnn安装
需要navid注册账号,然后下载runtime和develop两个deb包并且安装,安装命令直接使用dpkg
sudo dpkg -i libcudnn7_7.0.5.15-1_cuda9.0_amd64.deb
sudo dpkg -i libcudnn7-dev_7.0.5.15-Bcuda9.0_amd64.deb
sudo dpkg -i libcudnn7-doc_7.0.5.15-1+cuda9.0_amd64.deb #可选
5.安装TensorFlow; Keras
直接使用anaconda安装就可以了
conda install -c anaconda tensorflow-gpu
conda install -c conda-forge keras-gpu
这里后面接-gpu说明安装的是gpu版本,不带的话就是cpu版本的了,由于服务器配置了显卡,当然下载gpu版本以发挥显卡的优势
6.CUDA版本切换(如果正常装好不需要)
通过使用
python -c "import tensorflow as tf;"
查看tensorflow环境是否建好,

提示错误 搜索后发现是cuda的问题,使用ldconfig -v可以看到找不到libcublas.so.9.0,这是cuda9.0里面的,而我一开始安装的是最新版的cuda10,所以这里被坑了一波。。。
那么就需要卸载cuda10了
sudo apt-get remove cuda*
sudo apt remove --purge nvidia*
rm /etc/apt/sources.list.d/cuda-10-0-local-10.0.130-410.48.list
sudo apt autoremove
sudo rm -rf /var/cuda-repo-10-0-local-10.0.130-410.48
sudo rm -rf /usr/local/cuda*
都跑一遍再来重新安装应该就好了,这里再次使用‘python -c “import tensorflow as tf;“命令就可以发现没有报错了。接下来使用下面查看成功安装后的tensorflow gpu版本。可以看到1080ti已经成功被tensorflow识别了。
from tensorflow.python.client import device_lib
local_device_protos = device_lib.list_local_devices()
如何快速确认环境真的可用
装完之后,至少检查下面 3 件事:
python -c "import tensorflow as tf;"不报 CUDA 相关错误。device_lib.list_local_devices()能看到 GPU 设备。nvcc --version、nvidia-smi和 TensorFlow 实际加载的 CUDA 版本彼此不冲突。

总结一下
本文记录了一套 Ubuntu 18.04 上较老版本 TensorFlow GPU 环境的搭建过程,从 Anaconda、CUDA、cuDNN 到最终识别 1080Ti 的检查步骤都串起来了。最大的坑其实不是命令本身,而是版本兼容问题:TensorFlow、CUDA、cuDNN 和驱动必须彼此对上。
如果今天你照着做时发现版本不一致,不要先怀疑 TensorFlow,而是先回头确认兼容矩阵,再决定到底该降 CUDA,还是换成匹配的 TensorFlow 版本。
- 原文作者:春江暮客
- 原文链接:https://www.bobobk.com/70.html
- 版权声明:本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。