配置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
- 验证是否安装成功
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