在腾讯云上搭建 Tensorflow for GPU 深度学习环境

原文链接 https://jinkey.ai/post/tech/zai-teng-xun-yun-shang-da-jian-tensorflow-for-gpu-shen-du-xue-xi-huan-jing
本文作者 Jinkey(微信公众号 jinkey-love,官网 https://jinkey.ai)
文章允许非篡改署名转载,删除或修改本段版权信息转载的,视为侵犯知识产权,我们保留追求您法律责任的权利,特此声明!

前言

写文章日期 2017年 11月 11日
当前软件版本
NVIDIA-Linux-x86_64-384.81.run
nvidia-diag-driver-local-repo-rhel7-384.81-1.0-1.x86_64.rpm
cuda-repo-rhel7-9.0.176-1.x86_64.rpm
cudnn-9.0-linux-x64-v7
tensorflow_gpu-1.4.0-cp27-none-linux_x86_64.whl

购买服务器

登录控制台,云服务器 - 云主机 - 地区选择“北京” - 新建,土豪可以选择包月哦
配置如图
选择好之后呢,配置之后点击开通(账户余额需要足够,哈哈,此处应有广告费)
等待主机安装好,之后,在控制台获取到公网 IP(比如123.123.123.123),用 ssh 登录。

ssh root@123.123.123.123

登录之后,看看输入

cat /proc/version

查看你的 Linux 版本,企鹅云用的是

Linux version 3.10.0-693.5.2.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Fri Oct 20 20:32:50 UTC 2017

所以教程的相关依赖我都会下载 Red Hat 版本的
image.png

下载依赖

依赖可以直接通过 wget 下载到主机上,也可以先下载到 PC 本地再通过 xftp(Windows)或 Filezilla(Mac)上传。

下载NVIDIA驱动
http://www.nvidia.com/Download/Find.aspx

NVIDIA驱动

这里给出 Red Hat 版本 的下载地址
http://cn.download.nvidia.com/tesla/384.81/nvidia-diag-driver-local-repo-rhel7-384.81-1.0-1.x86_64.rpm

下载 CUDA
https://developer.nvidia.com/cuda-downloads
CUDA
下载后得到cuda-repo-rhel7-9.0.176-1.x86_64.rpm

这里给出 Red Hat 版本 的下载地址
http://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-repo-rhel7-9.0.176-1.x86_64.rpm

下载 cuDNN
https://developer.nvidia.com/rdp/cudnn-download(需要注册和填写问卷之后下载)
cuDNN

这里给出 通用 Linux 版本 的下载地址
https://developer.nvidia.com/compute/machine-learning/cudnn/secure/v7.0.3/prod/9.0_20170926/cudnn-9.0-linux-x64-v7-tgz

安装 NVIDIA驱动

方法一(官方推荐方法)
在下载页面就有安装方法介绍,不同版本系统安装方法不同

以下是 RH 的安装方法:

# 请替换文件名为你下载依赖时对应的文件名, 公众号 jinkey-love
rpm -i nvidia-diag-driver-local-repo-rhel7-384.81-1.0-1.x86_64.rpm
yum clean all
yum install cuda-drivers
reboot

方法二(极限偷懒版)

# 安装 Development Tools 软件包
sudo yum update
sudo yum group install 'Development Tools'
# 安装 elrepo 源
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
# 探测要安装的包
sudo yum install nvidia-detect
nvidia-detect
# 安装
sudo yum install kmod-nvidia

安装 CUDA

在下载页面就有安装方法介绍,不同版本系统安装方法不同,下面是以 RH 为例:

# 请替换文件名为你下载依赖时对应的文件名, 公众号 jinkey-love
sudo rpm -i cuda-repo-rhel7-9.0.176-1.x86_64.rpm
sudo yum clean all
sudo yum install cuda

添加 CUDA 到环境变量

vim ~/.bash_profile

加入

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"
export CUDA_HOME=/usr/local/cuda

因为写教程的时候 tensorflow 1.4.0 要支持 CUDA 9.0 的话,还需要从源码编译来安装,所以为了避免通过 pip 安装会出现 ImportError: libcublas.so.8.0: cannot open shared object file: No such file or directory的错误,可以先使用 CUDA8.0(安装 CUDA 9.0 的时候也会同时安装上8.0 的,所以你不需要重新安装),此时环境变量可以这么写:

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-8.0/lib64"
export CUDA_HOME=/usr/local/cuda-8.0

安装 cuDNN

# 请替换文件名为你下载依赖时对应的文件名, 公众号 jinkey-love
tar -xzvf cudnn-9.0-linux-x64-v7-tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h

安装 Python 依赖

企鹅云自带了 python 2.7

# 安装 pip
sudo yum install python-pip python-devel
sudo pip install --upgrade pip

安装 Tensorflow

方法一 源码编译(要使用 CUDA9.0目前之能支持这种方法)
方法二 pip
pip install tensorflow-gpu --upgrade

安装 matplotlib

sudo yum install freetype-devel
# 公众号 jinkey-love,官网 jinkey.ai
sudo yum install libpng-devel
sudo pip install matplotlib

安装 Keras

Keras 封装了 Theano 和 Tensorflow 的高度模块化的深度学习库,非常适合新手。

sudo pip install keras --upgrade

Keras 默认后端为 Theano 所以我们要修改为 Tensorflow

vim .keras/keras.json

修改为

{
    "image_dim_ordering": "tf", 
    "epsilon": 1e-07, 
    "floatx": "float32", 
    "backend": "tensorflow"
}

完成

实战了一下,同样的项目下,GPU 训练速度比 CPU 训练快了 187 倍。如果你觉得教程有用,可以微信打赏我哦

参考资料

安装 NVIDIA 驱动指引
安装 CUDA 驱动指引
ImportError: libcublas.so.8.0解决办法

Comments
Write a Comment
  • q'r reply

    撒撒旦发生飞洒