Using the 采用 Conda 的 Deep Learning AMI - 深度学习 AMI
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

Using the 采用 Conda 的 Deep Learning AMI

Introduction to the 采用 Conda 的 Deep Learning AMI

Conda 是一个开源程序包管理系统和环境管理系统,在 Windows、macOS 和 Linux 上运行。Conda 快速安装、运行和更新程序包及其依赖项。Conda 可轻松创建、保存、加载和切换本地计算机上的环境。

采用 Conda 的 Deep Learning AMI 已完成配置,以便让您轻松切换深度学习环境。以下说明指导您使用 conda。它们还帮助您验证框架的基本导入是否正常,并且您可以使用框架运行简单的操作。然后,您可以继续查看随 DLAMI 提供的更全面的教程,或者每个框架的项目站点上提供的框架示例。

Log in to Your DLAMI

登录服务器后,您会看到服务器的“每日消息”(MOTD),它介绍了可以用来切换不同深度学习框架的各种 Conda 命令。以下是示例 MOTD。由于新版本 DLAMI 的发布,您的特定 MOTD 可能不同。

注意

从 v28 版本开始,AWS Deep Learning AMI 中将不再包含 CNTK、Caffe、Caffe2 和 Theano Conda 环境。包含这些环境的先前版本的 AWS Deep Learning AMI 将继续可用。但是,只有在开源社区针对这些框架发布安全修补程序时,我们才会为这些环境提供更新。

============================================================================= __| __|_ ) _| ( / Deep Learning AMI (Ubuntu 16.04) Version 31.0 ___|\___|___| ============================================================================= Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-1111-aws x86_64v) Please use one of the following commands to start the required environment with the framework of your choice: for MXNet(+Keras2) with Python3 (CUDA 10.1 and Intel MKL-DNN) ____________________________________ source activate mxnet_p36 for MXNet(+Keras2) with Python2 (CUDA 10.1 and Intel MKL-DNN) ____________________________________ source activate mxnet_p27 for MXNet(+Amazon Elastic Inference) with Python3 _______________________________________ source activate amazonei_mxnet_p36 for MXNet(+Amazon Elastic Inference) with Python2 _______________________________________ source activate amazonei_mxnet_p27 for MXNet(+AWS Neuron) with Python3 ___________________________________________________ source activate aws_neuron_mxnet_p36 for TensorFlow(+Keras2) with Python3 (CUDA 10.0 and Intel MKL-DNN) __________________________ source activate tensorflow_p36 for TensorFlow(+Keras2) with Python2 (CUDA 10.0 and Intel MKL-DNN) __________________________ source activate tensorflow_p27 for TensorFlow 2(+Keras2) with Python3 (CUDA 10.1 and Intel MKL-DNN) _______________________ source activate tensorflow2_p36 for TensorFlow 2(+Keras2) with Python2 (CUDA 10.1 and Intel MKL-DNN) _______________________ source activate tensorflow2_p27 for TensorFlow 2.2 with Python3 (CUDA 10.2 and Intel MKL-DNN) _______________________ source activate tensorflow2_latest_p37 for Tensorflow(+Amazon Elastic Inference) with Python2 _____________________________ source activate amazonei_tensorflow_p27 for Tensorflow(+Amazon Elastic Inference) with Python3 _____________________________ source activate amazonei_tensorflow_p36 for Tensorflow 2(+Amazon Elastic Inference) with Python2 __________________________ source activate amazonei_tensorflow2_p27 for Tensorflow 2(+Amazon Elastic Inference) with Python3 __________________________ source activate amazonei_tensorflow2_p36 for Tensorflow(+AWS Neuron) with Python3 _________________________________________ source activate aws_neuron_tensorflow_p36 for PyTorch 1.4 with Python3 (CUDA 10.1 and Intel MKL) _________________________________________ source activate pytorch_p36 for PyTorch 1.4 with Python2 (CUDA 10.1 and Intel MKL) _________________________________________ source activate pytorch_p27 for PyTorch 1.6 with Python3 (CUDA 10.1 and Intel MKL) __________________________________ source activate pytorch_latest_p36 for PyTorch (+AWS Neuron) with Python3 ______________________________________________ source activate aws_neuron_pytorch_p36 for PyTorch with(+Amazon Elastic Inference) with Python3 _______________________________source activate amazonei_pytorch_p36 for Chainer with Python2 (CUDA 10.0 and Intel iDeep) ___________________________________________ source activate chainer_p27 for Chainer with Python3 (CUDA 10.0 and Intel iDeep) ___________________________________________ source activate chainer_p36 for base Python2 (CUDA 10.0) _______________________________________________________________________ source activate python2 for base Python3 (CUDA 10.0) _______________________________________________________________________ source activate python3

每个 Conda 命令具有以下模式:

source activate framework_python-version

例如,您可能会看到 for MXNet(+Keras1) with Python3 (CUDA 9) _____________________ source activate mxnet_p36,这意味着该环境具有 MXNet、Keras 1、Python 3 和 CUDA 9。要激活此环境,您可以使用以下命令:

$ source activate mxnet_p36

此命令的另一个变体是:

$ source activate mxnet_p27

这意味着该环境具有 MXNet 和 Python 2 (使用 Keras 1 和 CUDA 9)。

Start the TensorFlow Environment

注意

在启动您的第一个 Conda 环境时,请在其加载期间耐心等待。采用 Conda 的 Deep Learning AMI 会在框架首次激活时自动为您的 EC2 实例安装框架的最优化版本。您不应期望后续的延迟。

  1. 激活适用于 Python 3 的 TensorFlow 虚拟环境。

    $ source activate tensorflow_p36
  2. 启动 iPython 终端。

    (tensorflow_36)$ ipython
  3. 运行快速 TensorFlow 程序。

    import tensorflow as tf hello = tf.constant('Hello, TensorFlow!') sess = tf.Session() print(sess.run(hello))

您应该会看到“Hello, Tensorflow!”

后续步骤

运行 Jupyter 笔记本电脑教程

Switch to the PyTorch Python 3 Environment

如果您仍然处于 iPython 控制台中,则使用 quit(),然后准备切换环境。

  • 激活Python3的Pytorch虚拟环境。

    $ source activate pytorch_p36

这可激活Python3的Pytorch环境。或者,您可能已经激活了Pytorch_p27,以获得使用Python2的环境。

Test Some PyTorch Code

要测试安装,请使用Python写入创建和打印阵列的Pytorch代码。

  1. 启动 iPython 终端。

    (pytorch_p36)$ ipython
  2. 导入Pytorch。

    import torch

    您可能会看到一条关于第三方软件包的警告消息。您可以忽略它。

  3. 创建一个5x3矩阵,其中元素随机初始化。打印数组。

    x = torch.rand(5, 3) print(x)

    验证结果。

    tensor([[0.3105, 0.5983, 0.5410], [0.0234, 0.0934, 0.0371], [0.9740, 0.1439, 0.3107], [0.6461, 0.9035, 0.5715], [0.4401, 0.7990, 0.8913]])

Switch to the MXNet Python 3 Environment

如果您仍然处于 iPython 控制台中,则使用 quit(),然后准备切换环境。

  • 激活适用于 Python 3 的 MXNet 虚拟环境。

    $ source activate mxnet_p36

这将激活使用 Python 3 的 MXNet 环境。或者,您也可以激活 mxnet_p27,以构建使用 Python 2 的环境。

Test Some MXNet Code

要测试您的安装,请使用 Python 编写 MXNet 代码,以使用 NDArray API 创建并打印数组。有关更多信息,请参阅 NDArray API

  1. 启动 iPython 终端。

    (mxnet_p36)$ ipython
  2. 导入 MXNet。

    import mxnet as mx

    您可能会看到一条关于第三方软件包的警告消息。您可以忽略它。

  3. 创建一个 5x5 矩阵、一个 NDArray 实例,将元素初始化为 0。打印数组。

    mx.ndarray.zeros((5,5)).asnumpy()

    验证结果。

    array([[ 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0.]], dtype=float32)

    您可以在 MXNet 教程部分找到 MXNet 的更多示例。

Removing Environments

注意:如果您用尽了 DLAMI 上的空间,则可以选择卸载不用的 Conda 软件包:

conda env list conda env remove –-name <env_name>