NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

AWS Deep Learning Containers

  • 2019-10-05
  • 本文字数:1874 字

    阅读完需:约 6 分钟

AWS Deep Learning Containers

我们希望能让您尽可能方便地了解深度学习并运用到您的应用程序中。如果您知道如何提取大型数据集、训练现有的模型、构建新模型以及执行推理,说明您已经为未来做好了准备!

新推出 Deep Learning Containers

今天我将向大家介绍新推出的 AWS Deep Learning Containers。这些 Docker 映像可以随时与 TensorFlow 或 Apache MXNet 配合使用以进行深度学习训练或推理,对其他框架的支持也将很快推出。客户告诉我们,他们正在使用 Amazon EKS 和 ECS 将 TensorFlow 工作负载部署到云中,并要求我们让这一任务变得尽可能简单直接,为此我们构建了这些容器。虽然我们已经做到了客户的要求,但仍对这些映像进行优化以在便于在 AWS 上使用,希望能够减少训练时间,提高推理性能。


这些映像已经过预先配置和验证,让您可以在几分钟内完成 Amazon ECS、Amazon Elastic Container Service for Kubernetes 和 Amazon Elastic Compute Cloud (EC2) 上的自定义环境和工作流程设置,从而专注于深度学习! 您可以在 AWS Marketplace 和 Elastic Container Registry 找到它们并免费使用。这些映像可以照原样使用,也可以通过添加额外的库或文件包进行自定义。


现提供多种 Deep Learning Containers,具体名称取决于下列因素(并非所有组合都可使用):


  • 框架 – TensorFlow 或 MXNet。

  • 模式 – 训练或推理。您可以在单个节点上或多节点集群上进行训练。

  • 环境 – CPU 或 GPU。

  • Python 版本 – 2.7 或 3.6。

  • 分布式训练 – Horovod 框架的可用性。

  • 操作系统 – Ubuntu 16.04。

Deep Learning Containers 的使用

为了使用 AWS Deep Learning Container,我使用一个 p2.8xlarge 实例创建了一个 Amazon ECS 集群:


$ aws ec2 run-instances --image-id  ami-0ebf2c738e66321e6 \  --count 1 --instance-type p2.8xlarge \  --key-name keys-jbarr-us-east ... 
复制代码


我验证了该集群正在运行,并确认 ECS 容器代理已激活:



然后我在一个文本文件 (gpu_task_def.txt) 中创建了一条任务定义:


{  "requiresCompatibilities": [    "EC2"  ],  "containerDefinitions": [    {      "command": [        "tensorflow_model_server --port=8500 --rest_api_port=8501 --model_name=saved_model_half_plus_two_gpu  --model_base_path=/models/saved_model_half_plus_two_gpu"      ],      "entryPoint": [        "sh",        "-c"      ],      "name": "EC2TFInference",      "image": "841569659894.dkr.ecr.us-east-1.amazonaws.com/sample_tf_inference_images:gpu_with_half_plus_two_model",      "memory": 8111,      "cpu": 256,      "resourceRequirements": [        {          "type": "GPU",          "value": "1"        }      ],      "essential": true,      "portMappings": [        {          "hostPort": 8500,          "protocol": "tcp",          "containerPort": 8500        },        {          "hostPort": 8501,          "protocol": "tcp",          "containerPort": 8501        },        {          "containerPort": 80,          "protocol": "tcp"        }      ],      "logConfiguration": {        "logDriver": "awslogs",        "options": {          "awslogs-group": "/ecs/TFInference",          "awslogs-region": "us-east-1",          "awslogs-stream-prefix": "ecs"        }      }    }  ],  "volumes": [],  "networkMode": "bridge",  "placementConstraints": [],  "family": "Ec2TFInference"}
复制代码


我注册了该任务定义,然后记住了修订版次 (3):



然后,我使用该任务定义和修订版次创建了一个服务:



我通过控制台导航至该任务:



然后我找到了端口 8501 的外部链接:



然后我运行了三个推理(此特定模型使用如下函数进行训练:y = ax + b,其中 a = 0.5,b = 2):


$ curl -d '{"instances": [1.0, 2.0, 5.0]}' \  -X POST http://xx.xxx.xx.xx:8501/v1/models/saved_model_half_plus_two_gpu:predict{    "predictions": [2.5, 3.0, 4.5    ]}
复制代码


正如您可以看出,推理预测输入值为 1.0、2.0 和 5.0 时,值将为 2.5、3.0 和 4.5。这是一个非常非常简单的示例,但也很好地说明了通过 Deep Learning Containers,在 ECS 中使用预先训练的模型来执行推理的方法。您还可以启动用于训练用途的模型,执行训练,然后运行一些推理。


作者介绍:


Jeff Barr


AWS 首席布道师; 2004 年开始发布博客,此后便笔耕不辍。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/new-aws-deep-learning-containers/


2019-10-05 22:12578
用户头像

发布了 1836 篇内容, 共 92.6 次阅读, 收获喜欢 73 次。

关注

评论

发布
暂无评论
发现更多内容

前端js手写面试题汇总(一)

helloworld1024fd

JavaScript

前端js手写面试题汇总(二)

helloworld1024fd

JavaScript

React源码解读之React Fiber

flyzz177

React

面试官:说说React-SSR的原理

beifeng1996

React

主成分分析PCA与奇异值分解SVD-降维的实现方法

烧灯续昼2002

Python 机器学习 算法 sklearn 11月月更

前端代码规范常见错误 一

默默的成长

前端 Vue 3 11月月更

面试官:能用JavaScript手写一个bind函数吗

helloworld1024fd

JavaScript

虚拟机、沙箱和容器之间的区别

Onegun

容器 虚拟机 沙箱

kubernetes下的jenkins如何设置maven

程序员欣宸

maven jenkins 11月月更

Vue的computed和watch的区别是什么?

bb_xiaxia1998

Vue

React源码解读之任务调度

flyzz177

React

通俗易懂的React事件系统工作原理

夏天的味道123

React

通宵整理的react面试题并附上自己的答案

beifeng1996

React

Python进阶(四十三)glob 文件路径查找

No Silver Bullet

Python 11月月更 glob 文件查找

移动前端的安全管理方案

Onegun

前端 安全

最近面试被问到的vue题

bb_xiaxia1998

Vue

熬夜整理的vue面试题

bb_xiaxia1998

Vue

这可能是你需要的React实战技巧

夏天的味道123

React

面试官:你是怎样进行react组件代码复用的

beifeng1996

React

前端代码规范常见错误 二

默默的成长

前端 Vue 3 11月月更

自己手写一个redux

helloworld1024fd

JavaScript

React源码解读之更新的创建

flyzz177

React

new Vue的时候到底做了什么

bb_xiaxia1998

Vue

「Go工具箱」推荐一个轻量级、语义化的时间处理库:carbon

Go学堂

golang 开源 程序员 carbon 日期时间转换

React-diff原理及应用

xiaofeng

React

React核心技术浅析

夏天的味道123

React

微博:公布热搜算法!

博文视点Broadview

前端二面react面试题(附答案)

beifeng1996

React

Python进阶(四十)应用matplotlib绘图实战

No Silver Bullet

Python matplotlib 11月月更

golang 中 time 包使用教程之基础使用篇

Go学堂

golang 程序员 个人成长 time.Time 时间转换

Python进阶(四十一)Python3解决“tuple parameter unpacking is not supported in python3”

No Silver Bullet

Python3 问题分析 11月月更

AWS Deep Learning Containers_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章