写点什么

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

发布了 1898 篇内容, 共 143.8 次阅读, 收获喜欢 81 次。

关注

评论

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

如何在P4中管理Unreal Engine 代码

龙智—DevSecOps解决方案

版本控制 游戏开发 版本管理 游戏引擎 虚幻引擎

16张图解锁Spring的整体脉络

4ye

Java spring 程序员 后端 签约计划第二季

react源码解析4.源码目录结构和调试

buchila11

React React Hooks

Linux学习方法《Linux一学就会》Centos8软件包的管理与安装

侠盗安全

Linux linux运维 运维工程师 云计算架构师

如何使用 Java 代码给图片增加倒影效果

汪子熙

Java API 图片处理 11月日更 Java图片

【架构实战营】模块五作业

liu🍊

没有一个人喜欢被改变 ——阅读《高绩效教练》有感

研发管理Jojo

倾听 敏捷教练 引导和教练

架构训练营 - 模块 5 作业

焦龙

架构训练营

瞰见 | 刚刚,暴涨的 GitLab 给我们带来了怎样的开源思考?

OpenTEKr

狄安瞰源

dart系列之:时间你慢点走,我要在dart中抓住你

程序那些事

flutter 架构 dart 程序那些事 11月日更

react源码解析3.react源码架构

buchila11

源码 React React Hooks react源码

爱奇艺TFServing负载均衡问题研究及改进实践

爱奇艺技术产品团队

Perforce用户文章转载:每个游戏从业者都应该学学P4

龙智—DevSecOps解决方案

版本控制 游戏开发 版本管理 perforce 游戏厂商

[Pulsar] Batch Messge的基本原理

Zike Yang

Apache Pulsar 11月日更

微博评论架构分析

🌾🌾🌾小麦🌾🌾🌾

架构实战营

阿里云 Serverless 助力企业全面拥抱云原生

阿里巴巴云原生

阿里云 Serverless 云原生 企业

云原生体系下 Serverless 弹性探索与实践

阿里巴巴云原生

阿里云 Serverless 云原生 弹性 SAE

1 分钟 Serverless 极速抽盲盒,自己部署自己抽!

阿里巴巴云原生

阿里云 Serverless 云原生

为什么SOLID原则仍然是现代软件架构的基石

topsion

CleanCode SOLID

phpstudy开启Apache服务显示80端口被占用

咿呀呀

PHPStudy

KubeMeet 深圳站回顾:应对云原生边缘计算落地挑战

阿里巴巴云原生

阿里云 Kubernetes 云原生 线下活动

直播预告|数以智用——大数据应用探索与实践

智联卓聘

大数据 数据管理 线上沙龙

PackML从会到不会——状态机(1)

陈的错题集

标准化 PackML

应对 Job 场景,Serverless 如何帮助企业便捷上云

阿里巴巴云原生

阿里云 Serverless 云原生 函数 Job

架构实战营模块五作业

孙志强

架构实战营

大厂算法面试之leetcode精讲10.递归&分治

全栈潇晨

LeetCode 算法面试

内存数据库的分布式架构提升之道

鲸品堂

数据库

Elasticsearch云生态下的开源共生之路

大咖说

云计算 elasticsearch 开源

入驻快讯|欢迎AfterShip正式入驻 InfoQ 写作平台!

InfoQ写作社区官方

入驻快讯

大厂算法面试之leetcode精讲9.位运算

全栈潇晨

算法 LeetCode

服务API版本控制设计与实践

vivo互联网技术

API 服务器端开发 客户端开发 迭代

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