深度学习 AMI
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

Deep Learning AMI (Amazon Linux) 版本 2.0 的发行说明详细信息

AWS Deep Learning AMI

AWS Deep Learning AMI 预置了 CUDA 8 和 9 以及若干深度学习框架。DLAMI 与 Python2 和 Python3 共用 Anaconda 平台,可以轻松地在框架之间切换。

此发行版的亮点

  1. 已使用的 Deep Learning Base AMI (Amazon Linux) 作为基础 AMI

  2. CUDA 9

  3. CuDNN 7.0.3

  4. NCCL 2.1

  5. CuBLAS 8 和 9

  6. glibc 2.18

  7. OpenCV 3.2.0

  8. 改进了加载 Conda 环境的性能

预置了的深度学习框架

  • Apache MXNet:MXNet 是一个灵活、高效、可移植且可扩展的开源库,用于进行深度学习。它支持各种编程语言的声明式和命令式编程模型,使编写功能强大的深度学习应用程序变得很简单。MXNet 非常高效,本身支持可以在分布式环境中并行化的源代码部分的自动并行计划。MXNet 也很容易移植,内存优化技术的使用使它能在手机上运行完整的服务器。

    • 使用的分支/标签:v1.0

    • 理由:稳定和全面的测试

    • 要进行激活:

      • 适用于 Anaconda Python2.7+ - source activate mxnet_p27

      • 适用于 Anaconda Python3+ - source activate mxnet_p36

  • Caffe2:Caffe2 是一个以表达式、速度和模块性为基础的跨平台框架。

    • 使用的分支/标签:v0.8.1

    • 理由:稳定和全面的测试

    • 注意:只适用于 Python2.7

    • 要进行激活:

      • 适用于 Anaconda Python2.7+ - source activate caffe2_p27

  • CNTK:CNTK (微软认知工具包) 是微软研究院提供的统一深度学习工具包。

    • 使用的分支/标签:v2.2

    • 理由:最新版本

    • 要进行激活:

      • 适用于 Anaconda Python2.7+ - source activate cntk_p27

      • 适用于 Anaconda Python3+ - source activate cntk_p36

  • Keras:Keras 是 Python 的深度学习库

    v2.0.9 集成 Tensorflow

    • 理由:稳定版本

    • 要进行激活:

      • 适用于 Anaconda Python2.7+ - source activate tensorflow_p27

      • 适用于 Anaconda Python3+ - source activate tensorflow_p36

    v1.2.2 集成 MXNet

    • 理由:稳定版本

    • 要进行激活:

      • 适用于 Anaconda Python2.7+ - source activate mxnet_p27

      • 适用于 Anaconda Python3+ - source activate mxnet_p36

  • PyTorch:PyTorch 是一个 python 程序包,它提供了两个高级功能:具有强大 GPU 加速功能的 Tensor 计算 (如 numpy) 和基于磁带式 autograd 系统构建的练深度神经网络

    • 使用的分支/标签:v0.3.0

    • 理由:稳定和全面的测试

    • 要进行激活:

      • 适用于 Anaconda Python2.7+ - source activate pytorch_p27

      • 适用于 Anaconda Python3+ - source activate pytorch_p36

  • TensorFlow:TensorFlow™ 是使用数据流图进行数值计算的开源软件库。

    • 使用的分支/标签:v1.4

    • 理由:稳定和全面的测试

    • 要进行激活:

      • 适用于 Anaconda Python2.7+ - source activate tensorflow_p27

      • 适用于 Anaconda Python3+ - source activate tensorflow_p36

  • Theano:Theano 是一个 Python 库,允许您高效地定义、优化和评估涉及多维数组的数学表达式。

    • 使用的分支/标签:v0.9

    • 理由:稳定和全面的测试

    • 要进行激活:

      • 适用于 Anaconda Python2.7+ - source activate theano_p27

      • 适用于 Anaconda Python3+ - source activate theano_p36

Python 2.7 和 Python 3.5 支持

所有安装的深度学习框架的 AMI 都支持 Python 2.7 和 Python 3.6,但 Caffe2 除外:

  1. Apache MXNet

  2. Caffe2 (仅 Python 2.7)

  3. CNTK

  4. Keras

  5. PyTorch

  6. Tensorflow

  7. Theano

CPU 实例类型支持

AMI 支持所有框架的 CPU 实例类型。

安装了 GPU 驱动程序

  • CuDNN 7

  • Nvidia 384.81

  • CUDA 9.0

启动深度学习实例

从您选择的区域下面的列表中选择 AMI 的版本,然后按照以下步骤操作:

AWS Deep Learning AMI 开发人员指南

测试框架

已使用 MNIST 数据对深度学习框架进行了测试。AMI 包含的脚本可用于训练和测试每个框架的 MNIST。

脚本可在 /home/ec2-user/src/bin 目录中找到。

Deep Learning AMI (Amazon Linux) 区域

在以下区域提供:

区域 代码
美国东部 (俄亥俄) ec2-us-east-2
美国东部 (弗吉尼亚北部) ec2-us-east-1
美国西部 (加利福尼亚北部) ec2-us-west-1
美国西部 (俄勒冈) ec2-us-west-2
北京 (中国) cn-north-1
亚太地区 (孟买) ec2-ap-south-1
亚太地区 (首尔) ec2-ap-northeast-2
亚太地区 (新加坡) ec2-ap-southeast-1
亚太地区 (悉尼) ec2-ap-southeast-2
亚太地区 (东京) ec2-ap-northeast-1
加拿大 (中部) ec2-ca-central-1
欧洲 (法兰克福) ec2-eu-central-1
欧洲 (爱尔兰) ec2-eu-west-1
欧洲 (伦敦) ec2-eu-west-2
欧洲 (巴黎) ec2-eu-west-3
SA (圣保罗) ec2-sa-east-1

参考

测试环境

  • 构建在 p2.16xlarge 上。

  • 此外,在 p2.xlarge 和 c4.4xlarge 上经过测试。

已知问题

  • 问题:PyTorch 测试失败。~/src/bin/testPyTorch – 安装与 pytorch 0.3.0 不兼容的测试环境

    解决办法:尚无

  • 问题:框架或第三方提供的教程可能没有在 DLAMI 上安装 Python 依赖项。

    解决办法:您需要在激活环境中通过 conda 或 pip 安装这些依赖项。

  • 问题:模块没有找到运行 Caffe2 示例的错误。

    解决办法一些教程需要 Caffe2 可选依赖项

  • 问题:Caffe2 模型下载功能导致 404。自 v0.8.1 发布以来,这些模型已经改变了位置。更新 models/download.py 以使用 update from master

  • 问题:matplotlib 只能渲染 png。

    解决办法:安装 Pillow,然后重新启动您的内核。

  • 问题:更改 Caffe2 源代码似乎不起作用。

    解决办法:更改您的 PYTHONPATH 以使用安装位置 /usr/local/caffe2,而不是生成文件夹。

  • 问题:Caffe2 net_drawer 错误。

    解决办法:使用在此次提交中找到的记录器补丁

  • 问题:Caffe2 示例显示关于 LMDB 的错误 (无法打开数据库等)

    解决办法:这需要在安装系统 LMDB 之后从源代码进行生成,例如:sudo apt-get install liblmdb-dev

  • 问题:在使用 Jupyter 服务器连接本地端口时,SSH 断开连接。尝试创建一个到服务器的隧道时,您会看到 channel_setup_fwd_listener_tcpip: cannot listen to port: 8057

    解决方案:使用 lsof -ti:8057 | xargs kill -9,其中 8057 是您使用的本地端口。然后尝试再次创建到 Jupyter 服务器的隧道。