当前位置:首页 > 天道酬勤 > 正文内容

pytorch教程(pytorch conv2d)

张世龙2021年12月21日 13:31天道酬勤410

最近,PyTorch宣布了1.5版的更新。 作为一个越来越受欢迎的机器学习框架,PyTorch这次也带来了巨大的功能升级。 另外,Facebook和AWS还合作推出了两个重要的PyTorch库。

作者 | 神经星星

来源|超级神经(id :超级神经(id :超级神经) ) ) ) ) ) ) ) ) ) ) )。

随着PyTorch在生产环境中的使用不断增加,为社区提供更好的工具和平台以有效地扩展培训和部署模式也成为了PyTorch的当务之急。

最近发布了PyTorch 1.5,主要的torchvision、torchtext、torch音频库进行了升级,并发布了将模型从Python API转换为C API等功能。

此外,Facebook还与亚马逊合作推出了两个沉重的工具:跟踪服务模型服务框架和跟踪电子仓库控制器。

TorchServe的目的是提供清洁、兼容的工业级路径,以便大规模部署PyTorch模型的推理。

使用TorchElastic Kubernetes控制器,开发人员可以快速使用Kubernetes群集,在PyTorch上创建容错分布式培训作业。

这似乎是Facebook与亚马逊合作,针对大规模性能AI模型框架,向TensorFlow宣战的措施。

跟踪服务器:用于推理任务

引入机器学习模型进行规模化推理并不容易。 开发人员收集和打包模型工件,创建安全的服务堆栈,安装和配置预测软件库,创建和使用API和端点,生成监视日志和指标,并在多个可能的服务器上使用多个模型版本

这些任务需要大量的时间,模型部署可能会延迟几周到几个月。 此外,为低延迟在线APP优化服务也是必须的。

迄今为止,使用PyTorch的开发人员缺乏引入受官方支持的PyTorch模型的方法。 生产模型服务框架TorchServe的发布可以改变这一现状,使模型更容易投入生产。

以下示例说明如何从Torchvision中提取训练的模型并使用TorchServe进行部署。

# # downloadatrainedpytorchmodelwget https://download.py torch.org/models/densenet 161-8d 451 a50.PTH # packagemodelfortorchserveandcreatemodelarchive.marfiletorch -模型-存档器\--模型-名称161 \ - -版本-模型-文件示例/图像_分类/从属_ 161 /模型. py - -序列化-文件集1618d 451 a50.-外部文件示例/图像_分类/索引_名称. JSON --handler image _ classifiermkdirmodel _ storemvdensenet 161.marmodel _ store/# starttorchservemodelserverandregisterdenss

本机API :支持用于预测的推理API和用于管理模型服务器的管理API。 安全部署:包括对安全部署的HTTPS支持。 强大的模型管理功能:可以使用命令行界面、配置文件或运行时API来完全配置模型、版本和单个工作线程。 模型归档:提供用于执行模型归档的工具。 这是将模型、参数和支持文件封装到单个永久工件中的过程。 使用简单的命令行界面,可以打包和导出为一个. mar文件,其中包含提供PyTorch模型所需的所有内容。 这个. mar文件可以共享和重用。 内置的模型处理程序:支持涵盖最常见用例的模型处理程序,如图像分类、对象检测、文本分类和图像分割。 TorchServe还支持自定义处理程序。 日志记录和指标:支持信任日志

记录和实时指标,以监视推理服务和端点、性能、资源利用率和错误。还可以生成自定义日志并定义自定义指标。模型管理:支持同时管理多个模型或同一模型的多个版本。你可以使用模型版本回到早期版本,或者将流量路由到不同的版本进行 A/B 测试。预构建的图像:准备就绪后,可以在基于 CPU 和 NVIDIA GPU 的环境中,部署T orchServe 的 Dockerfile 和 Docker 镜像。最新的 Dockerfiles 和图像可以在这里找到。

用户也可以从 pytorch.org/serve 获得安装说明、教程和文档。

TorchElastic :集成的 K8S 控制器

当前机器学习的训练模型越来越大,如 RoBERTa 和 TuringNLG,它们向外扩展到分布式集群的需求也变得越来越重要。为了满足这一需求,通常会使用抢占式实例(例如 Amazon EC2 Spot 实例)。

但这些可抢占实例本身是不可预测的,为此,第二个工具 TorchElastic 出现了。

Kubernetes 和 TorchElastic 的集成,允许 PyTorch 开发人员在一组计算节点上训练机器学习模型,这些节点可以动态地变化,而不会破坏模型训练过程。

即使节点发生故障,TorchElastic 的内置容错功能也可以暂停节点级别的训练,并在该节点再次恢复正常后恢复训练。

TorchElastic 的内置容错能力支持断点续传

此外,使用带有 TorchElastic 的 Kubernetes 控制器,可以在硬件或节点回收时问题上,在被替换了节点的集群上,运行分布式训练的关键任务。

训练任务可以使用部分被请求的资源启动,并且可以随着资源可用而动态扩展,无需停止或重新启动。

要利用这些功能,用户只需在简单的作业定义中指定训练参数,Kubernetes-TorchElastic 软件包便可以管理作业的生命周期。

以下是用于 Imagenet 训练作业的 TorchElastic 配置的简单示例:

apiVersion: elastic.pytorch.org/v1alpha1kind: ElasticJobmetadata:name: imagenetnamespace: elastic-jobspec:rdzvEndpoint: $ETCD_SERVER_ENDPOINTminReplicas: 1maxReplicas: 2replicaSpecs:Worker:replicas: 2restartPolicy: ExitCodetemplate:apiVersion: v1kind: Podspec:containers:- name: elasticjob-workerimage: torchelastic/examples:0.2.0rc1imagePullPolicy: Alwaysargs:- "--nproc_per_node=1"- "/workspace/examples/imagenet/main.py"- "--arch=resnet18"- "--epochs=20"- "--batch-size=32"

微软、谷歌,就问你们慌不慌?

这次两家合作推出全新 PyTorch 库的操作,其背后也许有着更深层的意义,因为「不带你玩」这个套路,在框架模型发展的历史上,已不是第一次出现。

2017 年 12 月,AWS、Facebook 和微软宣布,他们将共同开发可用于生产环境的 ONNX ,以此来对抗谷歌 TensorFlow 对工业界使用的垄断。

随后 Apache MXNet 、Caffe2、PyTorch 等主流深度学习框架,都对 ONNX 实现了不同程度的支持,这方便了算法及模型在不同的框架之间的迁移。

AWS、Facebook 和微软当初欲用 ONNX 一统框架江湖

而 ONNX 想打通学术界和产业界的愿景,实际上并没有达到当初的预期,各家框架依然用各自的服务体系,基本上只有 MXNet 和 PyTorch 深入到了 ONNX。

而如今,PyTorch 推出了自己的服务体系,ONNX 则近乎失去了存在的意义(MXNet 表示不知所措)。

另一方面,PyTorch 在不断的升级更新之下,框架的兼容性和易用性,正在逼近甚至赶超最强劲的对手 TensorFlow。

虽然谷歌有自己的云服务和框架,但 AWS 的云资源和 Facebook 的框架体系联合,强强联手之下,恐怕谷歌也将难以招架。

而微软已经被曾经 ONNX dhy的两个小伙伴踢出群聊,下一步不知做何打算?

如何通过深度学习,完成计算机视觉中的所有工作?

Go后台项目架构思考与重构 | 深度长文

黑客用上机器学习你慌不慌?这 7 种窃取数据的新手段快来认识一下

阿里“去 IOE”十二年,弹性计算如何二次去 I 和 E?

5分钟!就能学会以太坊 JSON API 基础知识

扫描二维码推送至手机访问。

版权声明:本文由花开半夏のブログ发布,如需转载请注明出处。

本文链接:https://www.zhangshilong.cn/work/26345.html

标签: awshttps
分享给朋友:

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。