Training - Amazon 深度学习容器
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Training

本部分演示如何在上运行训练Amazon适用于 Amazon EC2 的 Deep Learning Containers,使用 Apache MXNet、PyTorch、TensorFlow 和 TensorFlow 2 的深度学习容器。

有关 Deep Learning Containers 的完整列表,请参阅Deep Learning Containers 映像.

注意

MKL 用户:读取AmazonDeep Learning Containers 英特尔数学核心库 (MKL) 建议以获得最佳训练或推理性能。

TensorFlow 训练

在您登录 Amazon EC2 实例后,您可以使用以下命令运行 TensorFlow 和 TensorFlow 2 容器。您必须使用nvidia-docker用于 GPU 图像。

  • 对于基于 CPU 的培训,请运行以下命令。

    $ docker run -it <CPU training container>
  • 对于基于 GPU 的培训,请运行以下命令。

    $ nvidia-docker run -it <GPU training container>

上一命令以交互模式运行容器并在容器内提供一个 shell 提示符。然后,您可以运行以下命令以导入 TensorFlow。

$ python
>> import tensorflow

按 Ctrl+D 以返回到 bash 提示符。运行以下命令以开始训练:

git clone https://github.com/fchollet/keras.git
$ cd keras
$ python examples/mnist_cnn.py

后续步骤

要在 Amazon EC2 上使用带有 Deep Learning Containers 的 TensorFlow 了解推理,请参阅TensorFlow 推理.

Apache MXNet(孵化版)训练

要开始利用 Amazon EC2 实例中的 Apache MXNet (孵化) 进行训练,请运行以下命令以运行容器:

  • 对于 CPU

    $ docker run -it <CPU training container>
  • 对于 GPU

    $ nvidia-docker run -it <GPU training container>

在容器的终端中,运行以下命令以开始训练。

  • 对于 CPU

    $ git clone -b v1.4.x https://github.com/apache/incubator-mxnet.git python incubator-mxnet/example/image-classification/train_mnist.py
  • 对于 GPU

    $ git clone -b v1.4.x https://github.com/apache/incubator-mxnet.git python incubator-mxnet/example/image-classification/train_mnist.py --gpus 0

使用 gluonCV 进行 MxNet 培训

在容器的终端中,运行以下命令以开始使用 GluonCV 进行训练。Deep Learning Containers 中包含 GluonCV v0.6.0。

  • 对于 CPU

    $ git clone -b v0.6.0 https://github.com/dmlc/gluon-cv.git python gluon-cv/scripts/classification/cifar/train_cifar10.py --model resnet18_v1b
  • 对于 GPU

    $ git clone -b v0.6.0 https://github.com/dmlc/gluon-cv.git python gluon-cv/scripts/classification/cifar/train_cifar10.py --num-gpus 1 --model resnet18_v1b

后续步骤

要在 Amazon EC2 上使用 MxNet 与 Deep Learning Containers 一起学习推理,请参阅推理 Apache MXNet(孵化) .

PyTorch 训练

要开始利用 Amazon EC2 实例进行 PyTorch 训练,请使用以下命令来运行容器。您必须使用nvidia-docker用于 GPU 图像。

  • 对于 CPU

    $ docker run -it <CPU training container>
  • 对于 GPU

    $ nvidia-docker run -it <GPU training container>
  • 如果您的 docker-ce 版本 19.03 或更高版本,则可以在 docker 中使用 —gpus 标志:

    $ docker run -it --gpus <GPU training container>

运行以下命令以开始训练。

  • 对于 CPU

    $ git clone https://github.com/pytorch/examples.git $ python examples/mnist/main.py --no-cuda
  • 对于 GPU

    $ git clone https://github.com/pytorch/examples.git $ python examples/mnist/main.py

PyTorch 利用 NVIDIA Apex 分发了 GPU 培训

NVIDIA Apex 是 PyTorch 扩展程序,其实用程序可用于混合精度和分布式培训。有关 Apex 提供的实用程序的更多信息,请参阅NVIDIA 顶级网站. 以下系列中的 Amazon EC2 实例支持 Apex:

要使用 NVIDIA Apex 开始分布式训练,请在 GPU 训练容器的终端中运行以下命令。此示例需要在 Amazon EC2 实例上至少有两个 GPU 才能运行并行分布式培训。

$ git clone https://github.com/NVIDIA/apex.git && cd apex $ python -m torch.distributed.launch --nproc_per_node=2 examples/simple/distributed/distributed_data_parallel.py

PyTorch 的 Amazon S3 插件

Deep Learning Containers 包括一个插件,使您能够将 Amazon S3 存储桶中的数据用于 PyTorch 培训。

  1. 要开始在 Deep Learning Containers 中使用 Amazon S3 插件,请检查以确保您的 Amazon EC2 实例具有对 Amazon S3 的完全访问权限。创建 IAM 角色授予 Amazon S3 访问 Amazon EC2 实例的权限并将该角色附加到您的实例。您可以使用AmazonS3FullAccess要么AmazonS3ReadOnlyAccess政策。

  2. 设置您的AWS_REGION环境变量与您选择的区域。

    export AWS_REGION=us-east-1
  3. 使用以下命令运行与 Amazon S3 插件兼容的容器。您必须使用nvidia-docker用于 GPU 图像。

    • 对于 CPU

      docker run -it 763104351884.dkr.ecr.us-east-1.amazonaws.com/pytorch-training:1.8.1-cpu-py36-ubuntu18.04-v1.6
    • 对于 GPU

      nvidia-docker run -it 763104351884.dkr.ecr.us-east-1.amazonaws.com/pytorch-training:1.8.1-gpu-py36-cu111-ubuntu18.04-v1.7
  4. 运行以下命令来测试示例。

    git clone https://github.com/aws/amazon-s3-plugin-for-pytorch.git cd amazon-s3-plugin-for-pytorch/examples python s3_cv_iterable_shuffle_example.py

有关更多信息和其他示例,请参阅PyTorch 的 Amazon S3 插件存储库。

后续步骤

要在 Amazon EC2 上使用 PyTorch 与 Deep Learning Containers 进行推理,请参阅PyTorch 推理 .