实验室新进了一台服务器,配置了nvida 1080TI显卡做深度学习使用,装好机器后第一件事就是如何配置好tensorflow的深度学习环境,这里把我在搭建环境的过程以及遇到的坑一一写下来,给有同样需求的筒子提供一些帮助。 操作系统是师兄刻好的ubuntu最新版本Ubuntu 18.04.1 LTS (可使用lsb_release -v查看),这种事当然第一件事就是谷歌了,发现一条setup-an-environment-for-machine-learning-and-deep-learning-with-anaconda-in-windows,接下来就是按照提示一步一步进行就是了。

搭建过程一共分为5步

  1. 下载 Anaconda
  2. 安装 Anaconda; Python(ubuntu自带python3)
  3. 更新 Anaconda
  4. 安装 CUDA & cuDNN(cudnn不需要自己装)
  5. 安装TensorFlow & Kera
  6. CUDA版本切换(如果正常装好不需要)

1,2,3步都是常规且比较简单就可以完成的事情,这里就简单说一下了,

1.下载 Anaconda

anacoda下载linux版python3.7版本,服务器是ubuntu18,所以下载的是python3.7版本 download_anaconda

2.安装 Anaconda & Python(ubuntu自带python3)

bash Anaconda3-5.3.1-Linux-x86_64.sh

跟着提示就可以顺利安装了安装了,如果你向我一样使用zsh作为默认shell的话,所以需要将.bashrc下的anaconda安装时自动添加的以下代码

conda_env

复制进.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_download

下好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环境是否建好, libcublas

提示错误 搜索后发现是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()

tf_gpu_fine

总结一下

本文介绍了搭建tensorflow深度学习环境的过程,从anaconda安装到cuda,tensorflow-gpu的安装以及遇到的最大的坑,就是cuda官网上默认是最新版的cuda10,而由于tensorflow gpu版本目前并不支持cuda10,只识别cuda9.0,在没有安装cuda9的机器上使用会直接报错,不得不重新卸载cuda10,安装cuda9,安装好后tensorflow就可以正常使用了