前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PyTorch 0.2发布:更多NumPy特性,高阶梯度、分布式训练等

PyTorch 0.2发布:更多NumPy特性,高阶梯度、分布式训练等

作者头像
量子位
发布2018-03-28 11:27:54
8150
发布2018-03-28 11:27:54
举报
文章被收录于专栏:量子位量子位
李林 编译整理 量子位 报道 | 公众号 QbitAI

Facebook的机器学习框架(之一)PyTorch今天发布了新版本:0.2.0。

这一版本引入了NumPy风格的Broadcasting、Advanced Indexing,增加了高阶梯度和分布式PyTorch。

PyTorch的GitHub新版发布说明中介绍了0.2版的以下新特性:

NumPy风格的Tensor Broadcasting

Broadcasting是NumPy在算数运算中处理不同形状数组的一种方式,在特定条件下,比较小的数组会通过比较大的数组进行“广播”,来获得相应的形状。

PyTorch支持Broadcasting,让它的Tensor arguments无需复制数据,就能自动扩展到相同大小。

向量和变量的Advanced Indexing

Advanced Indexing也是一种NymPy特性。当选择对象obj为非元组序列对象、ndarray(数据类型是整数或布尔时)、至少包含一个序列对象或ndarray的元组时,Advanced Indexing会激活。

NumPy现在部分支持NymPy风格的Advanced Indexing,让用户可以用相同的“[]-style”运算,在向量的每个维度上选择任意索引,包括不邻近的索引和重复索引。

高阶梯度

PyTorch 0.2版本新增的高阶梯度计算支持torch.XXX函数和最流行的nnlayers,在下一版本中可能会支持更多类型。

为了支持高阶梯度,PyTorch 0.2引入了一种编写函数autograd.Function的新形式,向下兼容旧的函数编写形式。

分布式PyTorch

PyTorch推出了torch.distributed包,让用户能在多台机器之间交换tensor,进而支持将神经网络的训练扩展到多台机器上,也支持更大的小批次。

具分布式PyTorch具体能做什么呢?举个例子,它为实现Facebook今年6月发布的论文Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour,提供了基础。

论文地址:https://arxiv.org/abs/1706.02677

distributed包遵循MPI风格编程模型,这意味着可以通过send、recv、all_reduce等函数在节点之间交换tensor。

PyTorch还提供了一个ImageNet训练案例来进行说明:https://github.com/pytorch/examples/tree/master/imagenet

新的nn层

0.2版本有一些新特性:

引入forward_pre_hook,在调用forward函数之前执行用户指定的闭包。

方便访问非叶梯度;

DataParallel支持dicts作为输入。

还引入了一些新的层,例如:

通过F.grid_sample和F.affine_grid实现空间变换网络;

从论文Self-Normalizing Neural Networks(地址:https://arxiv.org/abs/1706.02515)引入了nn.SeLU and nn.AlphaDropout;

从论文Convolutional Sequence to Sequence Learning(地址:https://arxiv.org/abs/1705.03122)引入了nn.GLU;

通过torch.utils.weight_norm来实现权重归一化;

nn.EmbeddingBag:构建词袋模型时,执行一个嵌入后跟Sum或Mean是很常见的,对于可变长度序列,计算嵌入包设计masking。PyTorch 0.2的nn.EmbeddingBag能更有效率地计算嵌入式包,特别是对于可变长度序列。

除此之外,PyTorch 0.2还引入了torch中的新功能,新增几类autograd支持,并修复了一些bug,详情见:

GitHub上的0.2.0版发布说明 https://github.com/pytorch/pytorch/releases/tag/v0.2.0

官方文档 http://pytorch.org/docs/0.2.0/

下载地址:

zip: https://github.com/pytorch/pytorch/archive/v0.2.0.zip

tar.gz: https://github.com/pytorch/pytorch/archive/v0.2.0.tar.gz

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-08-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 量子位 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • NumPy风格的Tensor Broadcasting
  • 向量和变量的Advanced Indexing
  • 高阶梯度
  • 分布式PyTorch
  • 新的nn层
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档