深度学习环境配置和使用指南

1554 字 · 2452 阅读 · 2018 年 07 月 25 日

最近更新:2019 年 5 月 16 日

对于深度学习环境而言,首先推荐大家使用一些优质的线上服务,而不是自行配置。下面,我们推荐两个提供免费 GPU 的在线 Notebook 服务。

免费 GPU 环境推荐

Kaggle Kernels

Kaggle 被 Google 收购之后,开始提供线上 Notebook 环境,名为 Kaggle Kernels。该环境为 Jupyter Notebook 的深度定制版本。目前,Kaggle Kernels 提供了 Tesla P100 系列 GPU,大家可以注册账户后免费使用。

值得注意的是,Kaggle Kernels 访问外部网络和 GPU 选项需要通过右侧菜单手动开启才会生效。

Google Colab

Google Colab 是 Google 官方推出的线上 Notebook 环境。Google Colab 提供了 Nvidia M40/P100 系列 GPU,并免费开放使用。

使用时,只需要在 代码执行程序 → 更改运行类型 中选择 GPU,即可开启免费 GPU 环境。Google Colab 同样提供免费的 TPU 环境,但 TPU 的使用和 GPU 有很大不同,直接启用是无效的,如果不了解请不要选则 TPU 项。

Google Colab 提供的免费 GPU 并不是无限制使用,如果你请求频次过高或者连续运行时间太长,都有可能被强制中断。除此之外,国内用户可能无法正常访问 Google 旗下的站点。

使用免费 GPU 算力也需要养成节约的好品质,建议搭建使用完毕后手动中止和关闭 Session。

使用云主机搭建

除了使用现成的服务,很多时候也非常推荐在云主机上完成深度学习训练。

当你选择在云主机上进行深度学习时,往往不需要自行配置环境,而是直接启动已配置好的镜像。无论是国内的 阿里云,还是国外的 AWS,都会提供最新的深度学习镜像。

例如,阿里云提供的 Ubuntu16.04(预装 NVIDIA GPU 驱动和 CUDA9.0) 镜像,已经为你配置好了驱动、CUDA、cuDNN。

你只需要在启动实例时加载即可,这样就省去了自行配置环境的麻烦。

除此之外,AWS 提供的 Amazon SageMaker 服务 可以让你一键启动 Jupyter Notebook,并在后端挂载相应的 GPU 实例,可以说再方便不过了。

使用云主机搭建 GPU 环境需要自行付费,一般根据不同的配置在每小时几块钱到几十块不等。使用完毕后一定要注意及时终止并销毁实例,否则仍然会持续计费造成大额的经济损失。

本地搭建环境

最后,如果你想利用本地的 GPU 搭建深度学习环境,也是可行的。我们推荐你按如下顺序进行配置:

检查 GPU 是否支持

如果你想搭建深度学习环境,那么首先得有一块 NVIDIA GPU。很遗憾,目前 AMD 系列 GPU 对深度学习并不友好。

有了 NVIDIA GPU 之后,首先需要检查其型号是否符合深度学习的最低配置,目前热门的深度学习框架对老旧型号的 NVIDIA GPU 并不支持。其中,判断的原则是 NVIDIA GPU 的计算性能指数(Compute Capability)大于或等于 3.0。 你可以访问 官方性能指数 页面查看。

更新 NVIDIA GPU 驱动

接下来,你需要更新 NVIDIA GPU 驱动到最新版本。这一步骤非常简单,只需要到 官方驱动页面 找到对应型号下载安装即可。

安装 CUDA 架构

CUDA(Compute Unified Device Architecture,统一计算架构)是由 NVIDIA 所推出的一种集成技术,深度学习需要 CUDA 并行计算架构的支持。

目前,CUDA 的版本是 9.x,这里推荐 9.0 版本即可,你可以访问 官方页面 下载。

目前,CUDA 支持 Windows,Linux 和 macOS 操作系统。

安装 cuDNN 深度神经网络库

cuDNN 是 NVIDIA 为深度学习专门研发的神经网络加速库,并支持当前主流的 TensorFlow、PyTorch 等深度行学习框架。根据官方介绍,cuDNN 能更好地调度 GPU 资源,使得神经网络的训练过程更加高效。

安装 cuDNN 首先需要访问 NVIDIA Developer 网站 注册账号。该网站国内访问速度慢,可能需要耐心等待或采取其他手段。

登录之后,需要根据之前安装的 CUDA 版本选择对应版本的 cuDNN 安装。

安装结果检查

更新驱动 + 安装 CUDA + 安装 cuDNN 等三个步骤完成之后,我们需要检查深度学习框架是否能正常监测到 GPU 并调用。

这里推荐使用 TensorFlow,首先需要安装 GPU 版本的 TensorFlow。你可以阅读 官方安装指南

安装完成之后,建议你使用 TensorFlow 和 PyTorch 提供的测试代码进行 GPU 执行检测。

import torch

# PyTorch 调用 GPU 测试
torch.cuda.is_available()
import tensorflow as tf

# TensorFlow 调用 GPU 测试
tf.test.is_gpu_available()

如果二者均返回 True,则代表 TensorFlow 和 PyTorch 能正常挂载 GPU。如果返回 False 则说明无法正常使用 GPU,需要排查错误。

由于不同的系统,不同的系统版本都可能会造成 GPU 环境配置问题,坑比较多。上述本地安装步骤仅是一个常用的流程,遇到问题还需要多利用搜索引擎进行解决,见招拆招。