【AI前沿动态】Pytorch 1.2.0 来了!

举报
HWCloudAI 发表于 2019/08/12 10:55:20 2019/08/12
【摘要】 PyTorch 1.2.0 正式发布了!官方在GitHub上发布更新文档,详细介绍了此次升级在JIT、ONNX、分布式、性能以及前端等方面的大量改进,一起来看看吧。
image.png





【导读】PyTorch 1.2.0 正式发布了!官方在GitHub上发布更新文档,详细介绍了此次升级在JIT、ONNX、分布式、性能以及前端等方面的大量改进,一起来看看吧。



今天,PyTorch官方正式发布 1.2.0 版本!

此次升级有超过1900个commit,包括在JIT、ONNX、分布式、性能以及前端等方面的大量改进。

image.png

PyTorch在GitHub中对 1.2.0 版本的详细介绍:

https://github.com/pytorch/pytorch/releases



亮点


[JIT]新 TorchScript API


1.2.0 版本包含了一个新的API,它可以使 nn.Module 跟易于转换为 ScriptModule。示例如下:

image.png


[JIT]改进了TorchScript Python语言覆盖


在 1.2.0 版本中,TorchScript大大改进了对Python语言构造和Python标准库的支持。亮点包括:


  • 提前返回(return)、中断(break)以及继续(continue);
  • 基于迭代器的构造,例如 for...in 循环,zip() 和 enumerate();
  • NamedTuples;
  • 支持 math 和 string 库; 
  • 支持大多数Python内置函数。

NN Transformer


此次更新添加了一个NN Transformer模块,该模块完全基于注意力机制,反映出输入和输出的全局依赖性。新版本为nn.Transformer 模块设计了独立的组件,所以可以独自使用,比如,nn.TransformerEncoder可以独自使用,无需更大的nn.Transformer。




数据类型支持的改进与变化
比较操作返回的数据类型由 torch.uint8 变为 torch.bool 


image.png



__invert__ / ~: 现在改为调用 torch.bitwise_not ,而不是1 – tensor并支持所有整型和布尔数据类型,而不仅仅是支持 torch.uint8。
image.png




torch.tensor(bool)和torch.as_tensor(bool) :现在指的是 torch.bool数据类型,而不是torch.uint8。


image.png



nn.BatchNorm{1,2,3}D: gamma (weight) :现在初始化至所有的1 ,不再U(0, 1)上随机初始化。


image.png



移除了一些不适用的线性代数操作,具体见下表,左列为被移除的项目,右列为新增的代替项目:
image.png

稀疏张量的一些改进
稀疏张量:全面改变张量的稀疏度,不再支持.data


image.png



稀疏张量:对密集张量构建器的本地修改将不再修改稀疏张量本身


 image.png



稀疏张量:向稀疏.grad累加密集梯度将不再保留Python目标身份。


image.png



nn.utils.convert_sync_batchnorm被替换为
nn.SyncBatchNorm.convert_sync_batchnorm (18787)




错误检查

错误检查:torch.addcmul 和 torch.lerp 操作器现在对输出张量形态要求更高,如果输出张量被用作输入之一,则不再允许其改变大小。


image.png


错误检查:变量版本跟踪性能改进

image.png



【JIT】从脚本模块调用的Python将被无视


 image.png




【JIT】面向脚本模块的优化器现在是一个背景管理器。

image.png



【JIT】script::Module 现在是一种引用形式


image.png



【仅C++】mean() /sum() / prod() API做出了一些轻微变动


image.png

新特性


包括张量类型支持、NN Package、操作器、Optim Package、分布式Package、可迭代数据集、Tensorboard Package等


 
性能改进
 
改进内容包括分布式、Tensorboard、Numpy兼容性、JIT、C++ API、MKLDNN张量等。
 
Bug修正:
 
包括torch.nn的bug修正、分布式bug修正、JIT bug修正和C++前端bug修正等。



一些不再使用的功能



torch.uint8张量掩模被移除,改为支持 torch.bool张量掩模。
 之前版本遗留的autograd函数(不包括静态前向法的函数) 不再使用。
 torch.gels 被重命名为torch.lstsq,torch.gels 将不再使用。




性能提升与文档更新

Torch.NN 性能提升。Torch.NN、贡献者、Build、TensorBoard和TorchHUB文档更新。




对ONNX的支持进一步扩展


  • 支持更多的ONNX 操作集

  • 对脚本模块的扩展支持

  • 支持导出更多的Torch操作器到ONNX

  • 扩展现有的导出逻辑

  • 对导出的ONNX图进行了优化

  • 其他一些bug修正和改进

 


更多更详细的更新信息,请详见PyTorch官方GitHub上的更新帖。
 
官方更新说明:


https://github.com/pytorch/pytorch/releases


转自:新智元


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。