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

深度学习 AMI Ubuntu 版本:2.4_Oct2017

深度学习 Amazon 系统映像

深度学习 AMI 预置了热门的深度学习框架,并且还包含了 Anaconda 平台 (Python2 和 Python3)。

此发行版的亮点

  1. 将 Ubuntu 16.04 (ami-d15a75c7) 用作基础 AMI

  2. CUDA 8 支持

  3. Tensorflow(v1.3.0)、Caffe2(v0.8.0)、Caffe(1.0)、CNTK(v2.0)、Theano(rel-0.9.0) 的框架升级

预置了的深度学习框架

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

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

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

    • Source_Directories:

      • /home/ubuntu/src/mxnet

  • Caffe:Caffe 是一个以表达式、速度和模块性为基础的深度学习框架。它是由伯克利视觉与学习中心 (BVLC) 和社区贡献者开发出来的。

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

    • 理由:支持 cuda8.0 和 cudnn 5.1

    • Source_Directories:

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

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

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

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

    • 注意:这是一个试验版本,可能会有一些问题。只适用于 Python 2.7

    • Source_Directories:

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

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

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

    • 使用的分支/标签:rel-0.9.0 标签

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

    • Source_Directories:

      • /home/ubuntu/src/Theano

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

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

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

    • Source_Directories:

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

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

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

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

  • Torch:Torch 是一个科学计算框架,广泛支持首先使用 GPU 的机器学习算法。由于使用了简单快捷的脚本语言 LuaJIT 以及底层 C/CUDA 实现,因此使用起来非常简单,效率也很高。

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

    • 理由:没有其他稳定的分支或标签可用

    • Source_Directories:

      • /home/ubuntu/src/torch

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

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

    • 理由:稳定版本

    • Source_Directories:

      • /home/ubuntu/src/cntk

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

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

    • 理由:稳定版本

    • Source_Directories:

      • /home/ubuntu/src/keras

Python 2.7 和 Python 3.5 支持

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

  1. Caffe

  2. Tensorflow

  3. Theano

  4. MXNet

  5. CNTK

CPU 实例类型支持

AMI 支持所有框架的 CPU 实例类型。MXNet 内置有 Intel MKL2017 DNN 库支持。如果要为 CPU 实例使用 caffe 二进制文件,则应使用 /home/ubuntu/src/caffe_cpu/ 中的二进制文件

CNTK Python 支持

您可以在 conda 环境中运行适用于 Python 的 CNTK。要实现此目的,应按照以下步骤进行:

cd /home/ubuntu/src/anaconda3/bin source activate cntk-py34

安装了 GPU 驱动程序

  • CuDNN 5.1

  • NVIDIA 375.66

  • CUDA 8.0

启动深度学习实例

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

启动 P2 实例的 EC2 文档

测试框架

已使用 MNIST 数据对深度学习框架进行了测试。AMI 包含的脚本可用于训练和测试每个框架的 MNIST。该测试检查验证准确度是否高于特定阈值。为每个框架的阈值都不同。

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

以下脚本测试各种框架:

/home/ubuntu/src/bin/testAll:测试所有框架

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

/home/ubuntu/src/bin/testTheano:测试 Theano

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

/home/ubuntu/src/bin/testTorch:测试 Torch

/home/ubuntu/src/bin/testCNTK:测试 CNTK

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

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

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

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

  • Theano:上述相同示例。验证准确度阈值为 95%。

  • Torch:本示例位于 Torch 树中。验证准确度阈值为 93%。

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

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

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

Ubuntu AMI

基于 Ubuntu 的深度学习 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

参考

MXNet

Caffe

Theano

TensorFlow

Torch

CNTK

测试环境

  • 构建在 p2.16xlarge 上。

  • 此外,还在 p2.xlarge、p2.8xlarge、p2.16xlarge 和 c4.4xlarge 上进行了测试。

已知问题

  • 需要使用 sudo 运行 testCNTK 脚本。

    例如:sudo。/testCNTK

  • conda 环境 keras1.2_p3 和 keras1.2_p2 随附仅限于 MXNet 版本的 CPU。

    要使用带有 MXNet 后端的 Keras 在 GPU 上训练,可以通过运行以下内容来解决此问题:

    pip install mxnet-cu80

    从 conda 环境内。

不支持

  • 在同一个 Python 进程中将多个框架一起运行尚未经过测试。

    例如,一个代码片段如下所示:

    import mxnet as mx import tensorflow as tf

    相同的 Python 进程可能会导致问题。