CentOS7安装Tensorflow2.1的问题

TensorFlow2.1不区分CPU版和GPU版,直接conda命令安装就能支持gpu,当然也可以只安装gpu版

conda install tensorflow   # 默认安装2.1.0版本
conda install tensorflow-gpu=2.1    # 安装gpu版的TensorFlow2.1

服务器版本:

CentOS Linux release 7.2.1511 (Core)

服务器当前显卡驱动版本:

NVRM version: NVIDIA UNIX x86_64 Kernel Module  381.22  Thu May  4 00:55:03 PDT 2017
GCC version:  gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)

显卡信息:

在conda中新建环境安装TensorFlow2.1后,安装cudatoolkit和cudnn,版本:

tf检测GPU是否可用结果为False:

import tensorflow as tf
print(tf.test.is_gpu_available())

结果显示没有报错信息:

应该是显卡驱动太老导致的不可用

对应版本信息:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

 版本对应关系:https://tensorflow.google.cn/install/source#linux

更新显卡驱动版本为400.100后查看显卡信息时,安装了一个10.2版本的cuda

但是使用命令查看cuda版本时,显示的还是旧版本的,应该是因为没有修改环境变量导致的:

原因未知,这时候试了一下tensorflow是否能用,结果是不能,应该是cuda版本没有对应上。

下载cuda10.1版本https://developer.nvidia.com/cuda-10.1-download-archive-update2?target_os=Linux&target_arch=x86_64&target_distro=CentOS&target_version=7&target_type=rpmlocal

cudnn7.6版本

【安装cudnn时遇到的坑】

安装命令:

`sudo rpm -i cuda-repo-rhel7-10-1-local-10.1.105-418.39-1.0-1.x86_64.rpm`
`sudo yum clean all`
`sudo yum install cuda`

第一次安装cudnn时遇到了Error3的错误,读了一下报错信息发现缺少一个依赖:vulkan-filesystem

下载安装vulkan-filesystem-1.1.73.0-1.el7_.noarch.rpm后,再次安装cuda,

注意这个时候,一定要yum clean all再执行yum install cuda安装,否则会报错。

再次安装的时候遇到Erro4的错误,截图如下:

分析后是旧版本的显卡驱动版本导致的冲突,所以卸载之前的旧版本NVIDIA显卡驱动,老的显卡驱动是通过yum安装的,通过yum的方式来删除旧版本驱动,如果是.run安装的,则可以用./包名.run --uninstall来卸载。

yum卸载旧版本驱动的方法:

rpm -qa|grep -i nvid|sort
rpm remove 要卸载的包

卸载旧版本驱动后,再次yum clean all,然后重新安装,cuda。

成功!

安装成功后,查看显卡配置信息,发现cuda会自动降级显卡的驱动版本,从440版本降级到了418版本,这是与版本对应表中对应上的版本号(但是版本对应表上明明写的是>=这个版本啊=、=)

这时还没有安装cudnn,但是在python中运行tensorflow2的检查显卡命令就已经显示GPU状态为可用了,并检出了8块显卡。

不知道是不是新版本的缘故,在安装完cuda后,没有配置cuda的环境变量。

【安装cudnn】

安装命令

# 解压
tar -xzvf cudnn-10.1-linux-x64-v7.6.4.38.tgz
# 复制到cuda下
cp cuda/include/cudnn.h /usr/local/cuda/include/
cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
# 修改权限
chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

cudnn的安装没有遇到什么坑,安装成功后的截图如下:

【升级gcc版本】

安装后发现为什么gcc版本没对应上也成功了。。。。。,还是吧gcc升级了吧,当前gcc版本是4.8.5 ,tensorflow2.1的要求是7.3.1,那就升级一下吧。

为什么gcc库中没有7.3.1版本???

下了个7.4.0版本的看看好用不

安装过程:

# 下载
wget http://ftp.gnu.org/gnu/gcc/gcc-7.4.0/gcc-7.4.0.tar.gz

# 解压
tar zxf gcc-7.4.0.tar.gz 

#到解压目录中
cd gcc-7.4.0

#安装依赖插件
./contrib/download_prerequisites 

# 创建新目录并进入
mkdir build && cd build

#编译安装(花了差不多两个小时。。。。)
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
make && make install

# 在路径/usr/local/lib64/libstdc++.so.6.0.24下有一个新的高版本的库,将此库复制到/usr/lib64/路径下并重新建立软连接
cp /usr/local/lib64/libstdc++.so.6.0.24 /usr/lib64/
rm libstdc++.so.6
ln -s libstdc++.so.6.0.25 libstdc++.so.6

【升级cmake版本】

这个是xgboost使用gpu训练时要用到的,先记录到这吧,另外xgb编译需要gcc版本5.0以上

wget https://cmake.org/files/v3.18/cmake-3.18.0-rc1.tar.gz
tar -zxvf cmake-3.18.0-rc1.tar.gz
cd cmake-3.18.0-rc1/
./bootstrap
gmake
gmake install

# 查看版本
cmake --version

安装成功后查看cmake版本发现报错:

将cmake解压后的bin文件夹中cmake文件复制到/usr/bin/即可

[root@ATD bin]# cp cmake /usr/bin/

【查看安装是否成功的一些命令】

# 查看cuda版本
cat /usr/local/cuda/version.txt
# 查看cudnn版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
# 查看显卡相关信息
nvidia-smi

【最后】

安装过程一定要确认tensorflow版本,显卡型号,cuda,cudnn,gcc,显卡驱动这几项的版本一定要对应上!!!

【References】

https://blog.youkuaiyun.com/wangyjfrecky/article/details/84029668

https://zhuanlan.zhihu.com/p/108507163

https://blog.youkuaiyun.com/wxzjfdcx/article/details/103830939

https://blog.youkuaiyun.com/m1131980108/article/details/88419168

https://www.houzhibo.com/archives/1115

https://blog.youkuaiyun.com/jacson_bai/article/details/50552604

https://www.jianshu.com/p/9c0dee9bb2b7

https://blog.youkuaiyun.com/bat67/article/details/84935538

https://blog.youkuaiyun.com/qxqxqzzz/article/details/102794226

https://blog.youkuaiyun.com/u010801439/article/details/80483036

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值