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

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

将深度学习 AMI 与 Conda 结合使用

使用 Conda 进行深度学习 AMI 简介

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

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

登录您的 DLAMI

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

注意

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

============================================================================= __| __|_ ) _| ( / Deep Learning AMI (Ubuntu 18.04) Version 40.0 ___|\___|___| ============================================================================= Welcome to Ubuntu 18.04.5 LTS (GNU/Linux 5.4.0-1037-aws x86_64v) Please use one of the following commands to start the required environment with the framework of your choice: for AWS MX 1.7 (+Keras2) with Python3 (CUDA 10.1 and Intel MKL-DNN) _______________________________ source activate mxnet_p36 for AWS MX 1.8 (+Keras2) with Python3 (CUDA + and Intel MKL-DNN) ___________________________ source activate mxnet_latest_p37 for AWS MX(+AWS Neuron) with Python3 ___________________________________________________ source activate aws_neuron_mxnet_p36 for AWS MX(+Amazon Elastic Inference) with Python3 _______________________________________ source activate amazonei_mxnet_p36 for TensorFlow(+Keras2) with Python3 (CUDA + and Intel MKL-DNN) _____________________________ source activate tensorflow_p37 for Tensorflow(+AWS Neuron) with Python3 _________________________________________ source activate aws_neuron_tensorflow_p36 for TensorFlow 2(+Keras2) with Python3 (CUDA 10.1 and Intel MKL-DNN) _______________________ source activate tensorflow2_p36 for TensorFlow 2.3 with Python3.7 (CUDA + and Intel MKL-DNN) ________________________ source activate tensorflow2_latest_p37 for PyTorch 1.4 with Python3 (CUDA 10.1 and Intel MKL) _________________________________________ source activate pytorch_p36 for PyTorch 1.7.1 with Python3.7 (CUDA 11.0 and Intel MKL) ________________________________ source activate pytorch_latest_p37 for PyTorch (+AWS Neuron) with Python3 ______________________________________________ source activate aws_neuron_pytorch_p36 for base Python3 (CUDA 10.0) _______________________________________________________________________ source activate python3

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

source activate framework_python-version

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

$ source activate mxnet_p36

启动电 TensorFlow 环境

注意

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

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

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

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

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

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

后续步骤

运行 Jupyter 笔记本电脑教程

切换到 PyTorch Python 3 环境

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

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

    $ source activate pytorch_p36

测试一些 PyTorch 代码

要测试您的安装,请使用 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]])

切换到 MXNet Python 3 环境

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

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

    $ source activate mxnet_p36

测试某些 MXNet 代码

要测试您的安装,请使用 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 的更多示例。

删除环境

如果您用尽了 DLAMI 上的空间,则可以选择卸载未使用的 Conda 程序包:

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