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

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

AWS Deep Learning AMI

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

此发行版的亮点

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

  2. CUDA 9

  3. CuDNN 7.0.3

  4. NCCL 2.0.5

  5. CuBLAS 8 和 9

  6. glibc 2.18

  7. OpenCV 3.2.0

预置了的深度学习框架

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

    • 使用的分支/标签:v0.12.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.2

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

    • 要进行激活:

      • 适用于 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. PyTorch

  5. Tensorflow

  6. 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) 区域

在以下区域提供 Deep Learning AMI (Amazon Linux):

  • 美国东部(俄亥俄):us-east-2

  • 美国东部(弗吉尼亚北部):us-east-1

  • 美国西部(加利福尼亚北部):us-west-1

  • 美国西部(俄勒冈):us-west-2

  • 亚太地区(首尔):ap-northeast-2

  • 亚太地区(新加坡):ap-southeast-1

  • 亚太地区(东京):ap-northeast-1

  • 欧洲(爱尔兰):eu-west-1

参考

测试环境

  • 构建在 p2.16xlarge 上。

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

Deep Learning AMI (Amazon Linux) 已知问题

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

    问题:MOTD 与这些发行说明的链接不正确。

    解决办法:如果您在这里,那么您已经知道了。

    未来的版本将解决这个问题。