音乐资讯-灯饰资讯-房产资讯 -教育资讯-小说 -人工智能 -影视头条-文化资讯-健康资讯-电子资讯 -时尚资讯-更多

当前位置:首页 >> 电子资讯 >> 正文

PyTorch 1.0 稳定版终于正式发布了!

2020-05-17 02:12:43  来源:双辽生活网  

PyTorch 1.0 稳定版终于正式发布了!新版本增加了JIT编译器、全新的分布式包、++ 前端,以及 Torch Hub等新功能,支持AWS、谷歌云、微软Azure等云平台,一句话,强大!

昨天,在 NeurIPS 大会上,Facebook 正式发布PyTorch 1.0 稳定版!

这距离 PyTorch 1.0 预览版发布仅仅过去了两个月。PyTorch 1.0 预览版首次发布是在 10 月份的 PyTorch 开发者大会,新增了面向生产的特征和主要云平台的支持等功能,被认为 90% 的功能能经受住业界的考验。

题外话,NeurIPS 大会上,同一天 团队和 PyTorch 团队先后有一个演讲,介绍他们的框架。网友表示,这就像现实版的 “Mac 和 PC 之争”(PyTorch 是 Mac)。nsorFlow 2.0 将在 2019 年正式发布。

回到 PyTorch1.0,研究人员和工程师现在可以轻松地充分利用这个开源框架的新特性,包括一个用于 eager 和 graph execuon 模型无缝转换的 hybrid 前端,改进的分布式训练,用于高性能研究的纯 C++ 前端,以及与云平台的深度集成。

PyTorch团队主要成员,包括贾扬清

此外,PyTorch 1.0 加速了 从研究原型开发到生产部署的工作流程,并使其更容易入门。在过去几个月,初学者通过各种教育项目快速开始使用 PyTorch,专家们构建各种创新项目,将框架扩展到从自然语言处理到概率编程的各个领域。

PyTorch 1.0 稳定版增加了一系列新功能,包括 JIT Comler,全新的分布式包、C++ 前端,以及 Torch Hub。以及大量更新、新增特征、bug修复等:

地址:

https://github.com/pytorch/pytorch/releases/tag/v1.0.0

JIT编译器、C++ 前端等四大新功能

JIT

JIT 是一组编译器工具,用于缩小 PyTorch 在研究和生产上的鸿沟。它允许创建可以在不依赖 解释器的情况下运行的模型,并且可以更积极地优化这些模型。

使用程序注释可以将现有模型转换为 Torch 脚本,这是 PyTorch 可以直接运行的 Python 子集。模型代码仍然是有效的 Python 代码,并且可以使用标准 Python 工具链进行调试。

PyTorch 1.0 提供了两种方法使现有代码与 JIT 兼容的方法,torch.jit.trace 或 torch.jit.script。一旦加上注释,Torch Script 代码就可以被积极地优化,并且可以序列化,以便在新的 c++ API 中使用。这个 API 完全不依赖 Python。

全新的分布式包

torch.distributed 软件包和 torch.nn.parallel.DistributedDataParallel 模块由全新的、重新设计的分布式库提供支持。新的库的主要亮点有:

新的 torch.distributed 是性能驱动的,并且对所有后端 (Gloo,NCCL 和 MPI) 完全异步操作。

显着的分布式数据并行性能改进,尤其适用于网络较慢的主机,如基于的主机。

为 torch.distributedpackage 中的所有分布式集合操作添加异步支持。

在 Gloo 后端添加以下 操作:send,recv,reduce,all_gather,gather,scatter

在 NCCL 后端添加 barrier 操作

为 NCCL 后端添加 new_group 支持

C++ 前端

C ++ 前端是 PyTorch 后端的纯 C ++ ,它遵循已建立的 Python 前端的 API 和体系结构。它旨在实现高性能、低延迟和裸机 C ++ 应用程序的研究。它提供了 torch.nn,torch.optim,torch.data 和 Python 前端的其他组件的对应版本。以下是两种语言前端的比较:

作为 PyTorch 1.0 的一部分,我们发布的是有 “API Unstable” 的 C ++ 前端。这意味着它已准备好用于你的研究应用程序,但仍有一些不稳定,我们将在接下来的几个版本中稳定下来。在此期间,API 的某些部分可能会发生大的更改。

Torch Hub

Torch Hub 是一个预训练的模型库,旨在促进研究的可重复性。

Torch Hub 支持使用简单的 hubconf.py 文件将预训练的模型(模型定义和预训练的权重)发布到 github 库; 以 pytorch/vision 中的 resnet 模型为例,请参阅 hubconf for resnet models in pytorch/vision。

发布后,用户可以使用 torch.hub.load API 加载预先训练的模型。更多详细信息,请阅读 torch.hub 文档。

不断增长的 PyTorch 社区

PyTorch 在 2017 年初首次推出,很快成为 AI 研究人员的热门选择。他们发现,由于其灵活、动态的编程环境和用户友好的界面,PyTorch 是快速实验的理想选择。从那时起,这个社区迅速发展起来。

PyTorch 现在是GitHub 上增长速度第二快的开源项目,在过去的 12 个月里,贡献者增加了 2.8 倍。

此外,Facebook 提供了一系列教育项目,帮助开发人员更轻松地学习如何使用 PyTorch 构建、训练和部署模型。

上个月,Uity 和 Facebook 联合推出一门新课程——PyTorch 深度学习入门 (Introduction to Deep Learning with PyTorch),以及 PyTorch Challenge Prog,该项目旨在为继续接受 AI 教育提供奖学金。仅仅几个星期,已经有全球各地成千上万的学生在网上积极学习。

所有人都可以通过 Udacity 网站免费获得完整的课程,更高级的 PyTorch 课程则将很快通过 Udacity 的 AI 纳米学位提供。

除了在线教育课程,fast.ai 等组织还提供了一些软件库来支持开发人员学习如何使用 PyTorch 构建。fastai 是一个简化训练神经网络的库,自从两个月前发布以来,已经在 GitHub 上获得了 10000 颗星星。

我们非常高兴看到开发人员使用这个库取得的成功。例如,Santhosh Shetty 使用 fastai 将灾后损伤等级分类的准确率提高了一倍;Alena Harley 将肿瘤正常的假阳性率降低了 7 倍;Jason Antic 创建了一个名为 DeOldify 的项目,使用深度学习对旧图像进行着色和恢复。

图片由 Jason Antic 提供

PyTorch 已经被应用于从图像识别到机器翻译的各种用例。因此,我们看到来自开发者社区的各种各样的项目,这些项目扩展并支持了 PyTorch 开发。其中一些项目包括:

Horovod——一个分布式训练框架,它使开发人员可以轻松地使用单个 程序,并在多个 GPU 上快速进行训练。

PyTorch Geometry——PyTorch 的几何视觉库,提供一组例程和可微分模块。

TensorBoardX—一个将 PyTorch 模型记录到 TensorBoard 的模块,允许开发人员使用可视化工具进行模型训练。

此外,Facebook 的团队也在为 PyTorch 构建和开源项目,比如 Translate,这是一个基于 Facebook 机器翻译系统的用于训练 sequence-to-sequence 模型的库。

支持各种云

为了使 PyTorch 更易于访问和用户友好,我们继续深化与云平台和服务的合作,例如Amazon Web services、Google Cloud Platform和crosoft Azure。

就在最近,AWS 推出了支持 PyTorch 的 Amazon SageMaker Neo,允许开发人员在 PyTorch 中构建机器学习模型,一次训练后即可部署到云或边缘的任何地方,并且性能提高了两倍。

开发人员现在还可以通过创建一个新的深度学习 VM 实例,在谷歌云平台上试用 PyTorch 1.0。

此外,微软的 Azure 机器学习服务现在已经普遍可用,它允许数据科学家在 Azure 上无缝地训练、管理和部署 PyTorch 模型。使用该服务的 Python SDK, PyTorch 开发人员可以利用按需分布式计算功能,用 PyTorch 1.0 大规模训练模型,以加速生产过程。

原文标题:PyTorch 1.0 稳定版正式发布!

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。