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

深度学习 CUDA 9 AMI Amazon Linux 版本:1.0

深度学习 Amazon 系统映像

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

此发行版的亮点

  1. 使用了 Amazon Linux 2017.09 (ami-8c1be5f6) 作为基础 AMI

  2. CUDA 9

  3. CuDNN 7

  4. NCCL 2.0

  5. CUDA 9 支持

  6. MXNet (带 CUDA9 支持)

预置了的深度学习框架

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

    • 使用的分支/标签:v0.12.0 候选版本标签

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

    • Source_Directories:

      • /home/ec2-user/src/mxnet

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

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

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

    • 注意:只适用于 Python2.7

    • Source_Directories:

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

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

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

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

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

    • Source_Directories:

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

      • 适用于 Python3+ - /home/ec2-user/src/tensorflow3

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

      • 适用于 Anaconda Python3+ - /home/ec2-user/src/tensorflow_anaconda3

Python 2.7 和 Python 3.5 支持

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

  1. MXNet

  2. Caffe2

  3. Tensorflow

CPU 实例类型支持

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

安装了 GPU 驱动程序

  • CuDNN 7

  • Nvidia 384.81

  • CUDA 9.0

启动深度学习实例

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

启动 P2 实例的 EC2 文档

测试框架

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

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

以下脚本测试各种框架:

/home/ec2-user/src/bin/testMXNet:测试 MXNet

/home/ec2-user/src/bin/testTensorFlow:测试 TensorFlow

/home/ec2-user/src/bin/testCaffe2:测试 Caffe2

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

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

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

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

Amazon Linux AMI

基于 Amazon Linux 的深度学习 AMI 在以下区域提供:

  • eu-west-1(DUB)

  • us-east-1(IAD)

  • us-west-1(PDX)

  • us-east-2(CHM)

  • ap-southeast-2(SYD)

  • ap-northeast-1(NRT)

  • ap-northeast-2(ICN)

参考

MXNet

测试环境

  • 构建在 p2.16xlarge 上。

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

已知问题

  • 问题:对于 Amazon Linux 深度学习 AMI (DLAMI) (特别是 pip) 而言,pip 和 Python 版本不兼容,预计会安装 Python 2 绑定,但需要安装 Python 3 绑定。

    这是在 pip 网站上记录的已知问题。未来的版本将解决这个问题。

    解决办法:使用下面的相关命令为相应的 Python 版本安装程序包:

    python2.7 -m pip install some-python-package

    python3.4 -m pip install some-python-package

  • 问题:框架或第三方提供的教程可能没有在 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: 8157

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