使用 Tensorflow 2.0 设置 AWS EC2 实例——AMI 还是自己构建?

kri*_*nab 5 python amazon-ec2 amazon-web-services tensorflow

我需要使用 Tensorflow 2.0 设置一个 AWS EC2 GPU 实例。我看到的所有文档都表明,当前的 AWS AMI 映像仅支持 Tensorflow 1.14 或 1.15,而不支持 Tensorflow 2.0。因此,我想知道在 AWS 实例上获得 Tensorflow-gpu 2.0 的最佳方法是什么。

我可以创建一个 EC2 GPU 实例,安装 Nvidia 驱动程序,然后使用nvidia-docker和安装一个 docker 实例,Tensorflow 2.0.或者使用 Tensorflow 1.14 安装 AWS AMI 映像然后升级到 Tensorflow 2.0 是否更容易?目前尚不清楚哪种方法更有意义。

欢迎大家提出意见。

kri*_*nab 4

所以我走了这两条路。现在我想说的是,设置 docker 容器比Tensorflow 2.0从 AMI 映像构建更容易。

对于 docker 路线,您可以使用 GPU 启动 Ubuntu 18.04 实例。然后您必须按照以下步骤操作。现在我列出了基本步骤,但没有详细说明。但希望这足以帮助人们入门。

  1. 启动实例并安装docker-ce软件。确保网络端口 8888 可用于传入连接。

  2. 为特定 GPU 实例安装 nvidia 驱动程序:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-nvidia-driver.html

  3. nvidia-docker从 Nvidia github 存储库安装软件。这将使 docker 映像能够访问 EC2 实例上的 GPU 驱动程序。

  4. 使用以下命令下载并运行tensorflow 2.0容器: docker run -it --gpus all --rm -v $(realpath ~/Downloads):/tf/notebooks -p 8888:8888 tensorflow/tensorflow:2.0.0-gpu-py3-jupyter

这应该启动一个笔记本,用户可以从他们的计算机访问它。

如果您想通过 AMI 映像来执行此操作,则基本上必须安装 Tensorflow 1.14 映像,然后升级它。这实际上比看起来更难。同样,这是步骤的高级概述,但我尽力包含链接或代码。

  1. 在服务器 (25.2) 上设置 ubuntu 18.04 深度学习 AMI。

  2. 更新和升级ubuntu:

    sudo apt-get update
    sudo apt-get upgrade
Run Code Online (Sandbox Code Playgroud)
  1. 更新 Anaconda 发行版,因为当前发行版使用包管理器的代理版本。
conda update conda
conda update --all
Run Code Online (Sandbox Code Playgroud)
  1. 创建tensorflow 2.0conda环境
conda create -n tf2 python=3.7 tensorflow-gpu==2.0 cudatoolkit cudnn jupyter
Run Code Online (Sandbox Code Playgroud)
  1. conda在 shell 中初始化。您必须执行此操作才能从 shell 中使用 conda 命令。您可能需要退出该实例,然后通过 ssh 返回到该实例。
conda init bash
bash
Run Code Online (Sandbox Code Playgroud)
  1. 安装environment_kernels
pip install environment_kernels

Run Code Online (Sandbox Code Playgroud)
  1. 安装 jupyter 笔记本扩展
conda install -c conda-forge jupyter_contrib_nbextensions
Run Code Online (Sandbox Code Playgroud)
  1. 在实例上安装 Jupyter 服务器。按照链接上的说明进行操作: https: //docs.aws.amazon.com/dlami/latest/devguide/setup-jupyter-config.html

  2. ssh 进入实例并启动 Jupyter 服务器。

ssh -N -f -L 8888:localhost:8888 ubuntu@aws-public-url
Run Code Online (Sandbox Code Playgroud)
  1. 在计算机上打开浏览器并浏览到该服务器的公共 URL:8888。

因此,我会说使用第一种方法而不是第二种方法,直到 Amazon 发布 Tensorflow 2.0 AMI。