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

采用源代码 (CUDA 9,Ubuntu) 的 Deep Learning AMI 版本:2.0

深度学习 Amazon 系统映像

深度学习 AMI 预置了 CUDA9 和 MXNet,并且还包含了 Anaconda 平台 (Python2 和 Python3)。

此发行版的亮点

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

  2. 经过更新的 TensorFlow master,支持 CUDA9/Volta

  3. MXNet 升级到 v1.0

  4. PyTorch 升级到 v0.3.0

  5. 增加了对 Keras 2.0.9 的支持,TensorFlow 作为默认后端

预置了的深度学习框架

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

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

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

    • 源目录:

      • /home/ubuntu/src/mxnet

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

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

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

    • 注意:只适用于 Python2.7

    • 源目录:

      • 适用于 Python2.7+-/home/ec2-user/src/caffe2

      • 适用于 Anaconda Python2.7+ - /home/ec2-user/src/caffe2_anaconda2

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

    Tensorflow 与 v2.0.9 集成。Tensorflow 是默认后端。

    • 理由:稳定版本

    • 源目录:

      • /home/ec2-user/src/keras

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

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

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

    • Source_Directories:

      • /home/ubuntu/src/pytorch

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

    • 使用的分支/标签:主标签

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

    • 源目录:

      • 适用于 Python2.7+ - /home/ubuntu/src/caffe

      • 适用于 Python3+ - /home/ubuntu/src/caffe3

      • 适用于 Anaconda Python2.7+ - /home/ubuntu/src/caffe_anaconda2

      • 适用于 Anaconda3 Python3+ - /home/ubuntu/src/caffe_anaconda3

      • 适用于 CPU_ONLY : /home/ubuntu/src/caffe_cpu

Python 2.7 和 Python 3.5 支持

以下深度学习框架的 AMI 中支持 Python 2.7 和 Python 3.5:

  1. Apache MXNet

  2. Caffe2

  3. Keras

  4. PyTorch

  5. Tensorflow

CPU 实例类型支持

AMI 支持所有框架的 CPU 实例类型。MXNet 内置有 Intel MKL2017 DNN 库支持。

安装了 GPU 驱动程序

  • CuDNN 7

  • Nvidia 384.81

  • CUDA 9.0

启动深度学习实例

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

启动 P2 实例的 EC2 文档

测试框架

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

脚本可在 /home/ubuntu/src/bin 目录中找到。

以下脚本测试各种框架:

/home/ubuntu/src/bin/testMXNet:测试 MXNet

/home/ubuntu/src/bin/testTensorFlow:测试 TensorFlow

/home/ubuntu/src/bin/testCaffe2:测试 Caffe2

以下测试已针对每个框架运行:

  • MXNet:本示例位于 MXNet 存储库中。测试的验证准确度阈值为 97%。

  • Tensorflow:本示例位于 keras 存储库中。测试的验证准确度阈值为 95%。

  • Caffe2:本示例位于 Caffe2 存储库中。验证准确度阈值为 90%。

AMI 区域可用性

在以下区域提供:

区域 代码
美国东部 (俄亥俄) 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 上经过测试。

已知问题

  • 问题:不完全支持 NCCL。除 P3 之外的任何其他实例尝试使用 NCCL 会导致崩溃。

    解决办法:除 P3 之外的实例不要使用 NCCL。

  • 问题: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 服务器的隧道。