前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3.训练模型之在GPU上训练的环境安装

3.训练模型之在GPU上训练的环境安装

作者头像
刘盼
发布2018-03-16 14:13:26
3K0
发布2018-03-16 14:13:26
举报
文章被收录于专栏:人人都是极客

一般来说我们会在笔记本或者 PC 端编写模型和训练代码,准备一些数据,配置训练之后会在笔记本或者 PC 端做一个简单验证,如果这些代码数据都 OK 的话,然后真正的训练放在计算力更强的的计算机上面执行,一般来说至少有一块或者多块 GPU,有相当好的显存和内存,接下来实验一下。

选择一个支持 TensorFlow GPU 的计算机

当务之急是找到一块可以用于 TensorFlow 的显卡,TensorFlow 只支持在 NVIDIA 的部分高端显卡上面进行 GPU 加速, 在 NVIDIA 开发者中心可以找到支持的显卡列表,确保显卡在这个列表之内。

一般来说有两个选择,第一可以自己购买配置一个专门用于机器学习/深度学习的服务器,这样初期的投入比较高。第二可以租用云服务器,目前各大云服务商都有专门的 GPU 计算实例,可以按照小时计费,这样对于学习来说成本还是可以接受的。

其实我的 MacBook Pro 上面有一块 N 卡,但是从 TensorFlow 1.2 开始,官方已经不再支持 Mac 上的 GPU 计算了。虽然可以通过一些 hack 使 TensorFlow 的 Mac 版本继续支持 GPU,但是笔记本上的显卡计算能力还是比较弱,我也不想训练到一半把这块显卡烧了,所以我选择从云服务商那里租用一台 GPU 计算实例。

安装 CUDA

CUDA 是一种由 NVIDIA 推出的通用并行计算架构,只能应用于 NVIDIA 的系列显卡,目前主流的深度学习框架包括 TensorFlow 都是使用 CUDA 来进行 GPU 加速的(可以把 CUDA 当做是一种驱动程序,TensorFlow 通过这个驱动程序来使用显卡),所以我们必须先安装 CUDA。

首先检查一下显卡信息,确保没有租错主机,在终端上运行:lspci | grep -i nvidia

要确保列出的显卡在 NVIDIA 支持 CUDA 的显卡列表里面。

在我租用的主机上,显示如下:

显卡没有问题,接下安装 CUDA(本课程使用 CUDA 8)。

在 NVIDIA 开发者中心下载相应的 deb 包。

下载完成以后运行:

代码语言:javascript
复制
    sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
    sudo apt-get update
    sudo apt-get install cuda

如果不出意外,安装完成之后在终端运行:nvcc --version,则输出 CUDA 的版本信息:

安装 cuDNN

我们还需要安装一个叫做 cuDNN 的深度卷积神经网络的加速库。

在 NVIDIA 开发者中心下载安装包(注意:选择 cuDNN 6 的版本,这样才和 CUDA 8 兼容。),这需要注册一个账号。

下载完成后运行:

代码语言:javascript
复制
    sudo tar -zxf cudnn-8.0-linux-x64-v6.0.tgz 
    cd cuda
    sudo cp lib64/* /usr/local/cuda/lib64/
    sudo cp include/cudnn.h /usr/local/cuda/include/

然后编辑 ~/.bashrc,在最后面加入:

代码语言:javascript
复制
    export CUDA_HOME=/usr/local/cuda
    export PATH=${CUDA_HOME}/bin/:$PATH
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CUDA_HOME/lib64:$CUDA_HOME/extras/CUPTI/lib64

然后source ~/.bashrc,安装完成。

安装 TensorFlow GPU 版

为了在 GPU 上进行训练,还要安装 TensorFlow 的 GPU 版本(之前在笔记本上面安装的是 CPU版): sudo pip install tensorflow-gpu==1.3.0

安装完成以后,运行 Python:

代码语言:javascript
复制
    python
    >>> from tensorflow.python.client import device_lib
    >>> print device_lib.list_local_devices()

如果输出信息里面有 /gpu:0 的信息,那么说明整个安装就成功完成了。

继续训练

前面花了一点时间来配置 GPU 的环境,现在是时候继续我们的训练了。当然还是需要在这台机器上面根据上一课时的内容完成 Object Detection API 的安装和配置;下载 Pre-trained 模型,然后把本地的训练目录打包上传,接着根据具体的路径修改 pipeline.config 中的相应项;最后运行训练脚本,这次的输出是这样的:

每一步的时间被缩短到 1 秒左右,那么执行完 200000 步大概需要 2 天多一点时间,对于实际应用,其实是可以接受的。

我在运行到 20000 多步的时候终止了学习(大概 6 个多小时),然后将训练目录复制到了本地:

在 model/train 目录下就是这 20000 多步的学习输出,如果在这个目录上继续运行训练脚本的话,它会从之前的学习进度开始,继续学习。

一个训练的流程就跑完了,我们配置好了深度学习的软硬件环境,下节课我们开始准备数据,训练自己的模型吧。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-02-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 人人都是极客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 选择一个支持 TensorFlow GPU 的计算机
  • 安装 CUDA
  • 安装 cuDNN
  • 安装 TensorFlow GPU 版
  • 继续训练
相关产品与服务
GPU 云服务器
GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于生成式AI,自动驾驶,深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档