搭建GPU版tensorflow(超详细)

全文字数 3172字
阅读时间 5分钟

如果这是人生第一次接触搭建GPU版服务器搭建深度学习环境,不要怕,简直是步步都有坑,字字都是泪,踩得多了就习惯了。AI小姐姐把相关的过程和坑都捋遍了,整理出来供参考。

我使用的是天翼云(32核 | 256GB | p1.8xlarge.8 CentOS7.3 64位 GPU-P100*2),总结了在GPU服务器上搭建环境,共计分为三大步骤六小步,简列如下:

一 Xshell新建链接及登录

二 FileZilla新建链接,登录,新建目录

三 环境搭建

1.安装Anaconda

2.创建虚拟环境及查看、激活环境

3.安装cuDNN加速库

4.安装tensorflow

5.安装tensorflow-gpu

6.执行python,然后import tensorflow

7.附:版本信息

下面进入到详细步骤和踩坑填坑环节:

一 Xshell新建链接,登录

一开始天翼云就闹了个乌龙,还没开通22端口,导致我没法成功连接Xshell和Filezilla。尝试链接失败后,第一次登录用的是用web远程登录(尚未备案),发现很不稳定经常掉线,后来干脆是无法打开网页;提工单后,其开启后方链接成功。)
接着进入到设置环节:
点击左上角新建–填写名称、主机(IP地址)–点击用户身份验证–填写用户名,密码,确定–点击打开–选定名称打开–跳出密钥确认保存即可。

二 FileZilla新建链接,登录

填写主机、用户名、密码、端口22后,点击快速链接,新建个人目录

三 环境搭建

1.安装Anaconda

1)下载 Anaconda3-5.2.0
根据服务器配置,下载对应的 Anaconda3-5.2.0-Linux-x86_64.sh
官网下载比较慢,直接执行以下语句简便快捷:

wget https://repo.anaconda.com/archive/Anaconda3-5.2.0-Linux-x86_64.sh

Ps. 现在已经官网update了新版本,pls revise accordingly.

2)安装

bash Anaconda3-5.2.0-Linux-x86_64.sh

按指示enter, yes等即可。

前方高能,大坑①请注意!
安装到倒数第二步,默认加到环境变量中去时时,后面一行小字紧接着提醒要新开一个terminal才能生效—reminder! 不看提示的人浪费了时间继续在同一terminal折腾。
泪流满面。

2.创建虚拟环境及查看、激活环境

  1. 创建虚拟环境
conda create -n your_env_name python=3.6.2 pip numpy matplotlib pandas sortedcontainers
  1. 查看环境列表
conda env list

可看到环境已创建成功

3)激活环境

source activate your_env_name

在进入第三步&第四步之前,有个关于踩坑的血泪史
在这个之前安装过一次测试环境(不含GPU),过程简单,在完成以上步骤后,就到安装tensorflow,之后进入python–import tensorflow就收工大吉。
可是,带GPU的tensorflow完全不是那么一回事。我照着anaconda安装–创建虚拟环境–激活虚拟环境–安装tensorflow 1.4.0后,华丽丽的高能大坑轮流出现:
坑②
Error: module ‘pandas’ has no attribute ‘core’
解决方法:重装pandas

pip uninstall pandas
pip install pandas

坑③
之后执行安装tensorflow-gpu ==1.4.0后,进入python–import tensorflow
Error: libcublas.so.8.0:can not open shared object file:No such file or directory

尝试方法一:tensorflow切换到低版本
再进入python–import tensorflow,报同样的error

pip install tensorflow==1.2.0
pip install tensorflow-gpu==1.2.0

尝试方法二:tensorflow切换到低版本

pip install tensorflow==1.1.0
pip install tensorflow-gpu==1.1.0

报一个新error:
ImportError: libcudnn.so.5: cannot open shared object file: No such file or directory

(事后诸葛:这个error是很大的突破口,如果当初能分析得好,就能少绕下面的弯路,节省时间直接解决问题了,可是还是不可避免地因为没有分析定位好问题,绕了大圈;以下尝试软链接的设定固然是个进步,但是执行语句并没有了解也没有相应的文件在服务器上,不可能奏效;离解决问题还很远)

尝试方法三

cp /var/lib/cuda8/usr/local/cuda-8.0/lib64/* /opt/anaconda3/envs/your_env_name/lib
echo $LD_LIBRARY_PATH

提示找不到 /var/lib/cuda8/usr/local/cuda-8.0/lib64/*
PS.因以上尝试均失败,所以将安装好的tensorflow 、tensorflow-gpu一并卸载了,方便之后重新尝试。

**找到几篇CSDN博文,有讲到带GPU的服务器从零搭建,包含了我没接触过的三部分:安装Nvidia显卡驱动、CUDA、cuDNN加速库。而之前报error的libcudnn.so.5应该是和cuDNN有千丝万缕的关系吧?

带着疑问,我尝试查看目前系统所需对应安装什么NVIDIA显卡驱动,度之用了几个执行语句也没看出个什么出来,nvidia-smi发现已经有安装了驱动375.66, 显卡型号是Tesla P100,而且查询CUDA已安装(执行 cat /usr/local/cuda/version.txt),cuDNN未安装(执行cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2报错)。
兜了一圈,不用从零开始安装,也许直接从cuDNN着手即可。

那么,就来试一下吧。**

3.安装cuDNN加速库

1)下载对应版本
注册账户后选定报错提示的那个版本5.0即可,我下载的是cudnn-8.0-linux-x64-v5.1.tgz
2)安装
Fz上传至Linux服务器指定文件夹,执行tar xvzf cudnn-8.0-linux-x64-v5.1.tgz,ls后可见cuda文件夹
3)设定软链接
坑④
没有在cuda目录的上层目录执行以下语句,就会报找不到对应file。

sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64

4.安装tensorflow

pip install tensorflow==1.2.0

5.安装tensorflow-gpu

pip install tensorflow-gpu==1.2.0

6.执行python,然后import tensorflow

7.版本信息

Linux(CentOS 7.3.1611)
Linux 3.10.0-514.el7.x86_64
(订单显示 32核 | 256GB | p1.8xlarge.8 CentOS7.3 64位 GPU-P100)
Nvidia driver 375.66, 显卡型号Tesla P100
conda 4.5.11
CUDA 8.0.61
cuDNN 5.1.10
Python 3.6.6
Keras 2.2.4
Tensorflow 1.2.0
Tensorflow-gpu 1.2.0

你可能感兴趣的:(环境搭建)