由于项目需要,需要安装tensorflow-gpu1.5.0到Centos环境下。
环境介绍:
Centos7
gcc-4.8.5
python3.5
我用的GPU的种类是:GeForce GTX1080 Ti,是英伟达的GeForce系列10的产品。
安装TensorFlow-GPU版本需要先安装后GPU。之前的同事已经将gpu安装完毕,但gpu的驱动和cuda版本都不符合tensorflow-gpu的要求,所以要先卸载掉gpu环境。同事安装的环境是:cuda driver 387,cuda8.0,cudnn6.0
注:TensorFlow-gpu需要cuda9.0,cudnn-7.0版本(本人测试7.1版本不行),并且安装最新的cuda驱动(至于为什么要装最新的,我也不知道)。
背景介绍差不多了,下面开始安装。
1.卸载环境
[root@hadoop1 ~]# pip show tensorflow-gpu
Name: tensorflow-gpu
Version: 1.4.0
Summary: TensorFlow helps the tensors flow
Home-page: https://www.tensorflow.org/
Author: Google Inc.
Author-email: opensource@google.com
License: Apache 2.0
Location: /usr/local/lib/python3.5/site-packages
Requires: tensorflow-tensorboard, enum34, wheel, protobuf, numpy, six
卸载TensorFlow-gpu
[root@hadoop1 ~]# pip3 uninstall tensorflow-gpu
卸载cuda8
[root@hadoop1 drive]# /usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl
卸载驱动
[root@hadoop1 drive]# /usr/bin/nvidia-uninstall
2.下载好相应的cuda驱动包,cuda包等:
NVIDIA-Linux-x86_64-390.67.run
下载链接在:https://www.nvidia.cn/Download/index.aspx?lang=cn
cuda_9.2.148_396.37_linux.run
下载链接在:
https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=CentOS&target_version=7&target_type=runfilelocal
cudnn-9.0-linux-x64-v7.solitairetheme8
下载链接在:
https://developer.nvidia.com/rdp/cudnn-archive
3.安装NVIDI
[root@hadoop1 drive]# ./NVIDIA-Linux-x86_64-390.67.run
4.安装cuda9
[root@hadoop1 drive]# sh cuda_9.0.176_384.81_linux.run
在安装的时候会提示需不需要安装驱动,选no,因为上一步已经安装了。
安装完毕后配置环境变量:
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64\
${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
5.安装cudnn9.0
[root@hadoop1 drive]# cp cudnn-9.0-linux-x64-v7.solitairetheme8 cudnn-9.0-linux-x64-v7.tgz
[root@hadoop1 drive]# tar -zxf cudnn-9.0-linux-x64-v7.tgz
[root@hadoop1 cuda]# cp ./include/* /usr/local/cuda/include
[root@hadoop1 cuda]# cp ./lib64/* /usr/local/cuda/lib64
[root@hadoop1 cuda]#
chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
笔者一开始装的是cudnn9.1,装完后看不出什么问题,后来运行一个cnn网络的时候,报了如下错误:
Check failed:
stream->parent()->GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogradNonfusedAlgo(), &algorithms)
后来查了一些博客说是版本问题,就换回来了。
5.安装TensorFlow-gpu
[root@hadoop1 drive]#
pip3 install tensorflow_gpu-1.5.0-cp35-cp35m-manylinux1_x86_64.whl
笔者是在离线的情况下装TensorFlow-gpu的,所以运行这一步的时候,会报缺少依赖的错误,这时候就需要我们自己去网上下载相应的依赖并安装后,之后才来执行这一句命令。
缺少的依赖有:
版本>=absl-py.0.1.6;>=tensorflow-tensorboard.1.5.0;>=futures.¬3.1.1
读者可以自己去网上找,实在找不到的话可以私聊我。有其他问题也可以私聊我。
执行到这一步,TensorFlow-gpu就全部装好了。接下来就可以利用gpu来跑深度学习的代码了。
在装cuda的时候,是需要关闭nouveau和X服务的,但这里就不写出命令了,读者可以去看其他的博客,或者看下面的参考文献。
参考文献:
【解决】Ubuntu安装NVIDIA驱动(咨询NVIDIA工程师的解决方案)
https://blog.csdn.net/u012759136/article/details/53355781