计算机系统应用教程网站

网站首页 > 技术文章 正文

PyTorch 0.2发布:更多NumPy特性,高阶梯度等

btikc 2024-10-12 11:39:35 技术文章 4 ℃ 0 评论

李林 编译整理

量子位 报道 | 公众号 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

—— ——

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表