深度学习 AMI
开发人员指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

深度学习 AMI Ubuntu 版本:1.1

深度学习 Amazon 系统映像

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

预置了的深度学习框架

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

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

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

    • Source_Directories:

      • /home/ubuntu/src/mxnet

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

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

    • 理由:支持 cuda 7.5 和 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

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

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

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

    • Source_Directories:

      • /home/ubuntu/src/theano

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

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

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

    • 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.0beta7.0 标签

    • 理由:最新版本

    • Source_Directories:

      • /home/ubuntu/src/cntk

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

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

    • 理由:稳定版本

    • 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 352.99

  • CUDA 7.5

启动深度学习实例

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

启动 G2 实例的 EC2 文档

测试框架

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

脚本可在 /home/ec2-user/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

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

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

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

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

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

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

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

Ubuntu AMI

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

  • eu-west-1(DUB)

  • us-east-1(IAD)

  • us-west-1(PDX)

参考

MXNet

Caffe

Theano

TensorFlow

Torch

CNTK

测试环境

  • 在 g2.2xlarge 上构建和测试

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