写点什么

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:12575
用户头像

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

关注

评论

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

程序员的晚餐 | 5 月 30 日 入梅天,来一盆小龙虾

清远

美食

关于 Windows 10 2020 年 5 月更新

FeiLong

Go: 使用GODEBUG改善Goroutine的使用

陈思敏捷

debug 协程 Go 语言

ARTS|Week 01 (2020第22周)

MiracleWong

算法 写作 ARTS 打卡计划

谈谈控制感(12):选择什么样的工作

史方远

读书笔记 个人成长 随笔杂谈

云上基础产品之负载均衡

韩超

负载均衡 公有云

N皇后问题

孙苏勇

算法 DFS 深度优先搜索

遇事不决,请先 「搜索」

小匚

个人成长 职场 随笔杂谈

是什么奠定了架构师的职场地位?

刁架构

极客大学架构师训练营

云上基础产品之对象存储

韩超

对象存储 公有云 S3

Prometheus 2.18.0 新特性

耳东@Erdong

Prometheus

浅说Docker基础知识与核心原理

岿然独存5

Docker 软件 Go 语言

【摘】Git-从零单排 02期

卡尔

git 原理 开发工具 工具链

一款霸榜 GitHub 的开源 Linux 资源监视器!

JackTian

GitHub Linux 开源 bashtop 资源监视器

ARTS Week2

丽子

用大数据分析了一线城市1000多份岗位招聘需求,告诉你如何科学找工作

程序员柠檬

Python 数据分析

带你学够浪:Go语言基础系列-环境配置和 Hello world

程序员柠檬

后台开发 Go 语言

云上基础产品之虚拟私有云

韩超

公有云 VPC 虚拟私有云

带你学够浪:Go语言基础系列 - 8分钟学基础语法

程序员柠檬

程序员 后台开发 Go 语言

云上基础产品之内容分发网络

韩超

CDN 公有云 内容分发网络

除了直接看余额,谁更有钱还能怎么比(二)

石君

去中心 零知识证明

Python 进阶与核心技术 dict & set

Bonaparte

Python 极客时间

程序猿邂逅相亲妹,默默无语两行泪

码农神说

程序员 相亲

架构之路

强哥

极客大学架构师训练营

RocketMQ - 如何实现事务消息

Java收录阁

RocketMQ

JMM的前世今生

fkc_zyk

重排序 volatile happens-before JMM cpu

Linux命令-df

一周思进

工作那么久,你还具备学习能力么?

punkboy

学习 程序员

你想活出怎样的人生

Janenesome

读书笔记 思考

直面一个复杂世界

史方远

读书笔记 个人成长 随笔杂谈

戒掉手机吧

鼎玉谷

人生 手机 时间 浪费 控制

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