文档章节

Pytorch v0.1.12版本发布,添加CUDA的Sparse支持

earnpls
 earnpls
发布于 2017/07/11 23:09
字数 1327
阅读 156
收藏 0

API更改

  1. torch.range被弃用,赞成torch.arangenumpy和python范围一致。
  2. 在稀疏的传感器上,contiguous更名为现在,coalesce并且coalesce现在已经不合适。 (提醒Sparse API仍然是实验性和演进性的,所以我们不提供后向兼容性)。

新功能

新层次和功能

  1. torch.topk现在支持所有CUDA类型,不只是torch.cuda.FloatTensor。
  2. 增加了三路排名丢失:nn.TripletMarginLoss 添加每个实例规范化层:nn.InstanceNorm1d,1. nn.InstanceNorm2d,nn.InstanceNorm3d 每个通道被视为一个实例进行归一化,并且均值减去和标准化完成。当处理较大的图像和更小的迷你批次时,这对BatchNorm喜欢效果是有用的。
  3. nn.ZeroPad2d并nn.ConstantPad2d添加。
  4. nn.Bilinear 被添加,它计算 Y = X1 X2 + b

负尺寸将从最后一维度索引张量。

使用维度参数的每个单个函数也将允许采取负面维度。

负尺寸将从最后一维度索引张量。

例如:

x = torch.randn(10, 20, 30)
y = torch.mean(x, dim = -1)

在这里,由于x具有3个维度,而dim = -1是最后一个维度,即dim=3采取平均值。

具有维参数的函数是:

narrow, transpose, size, cat, chunk, gather, index_select, split, squeeze,
stack, unbind, unsqueeze, cumprod, cumsum, mean, median, mode, norm, prod, std,
sum, var, kthvalue, max, min, sort, topk, renorm,
index_add, index_copy, index_fill, scatter, select, unfold

CUDA支持sparse传感器,CPU速度更快

现在torch.sparse也支持API 的一部分torch.cuda.sparse.*Tensor

CUDA支持的功能有:

sparse_mask, to_dense, coalesce, transpose, spaddmm
spcadd, mul, div, cadd, csub, cmul

nn.Embedding现在支持sparse,即使在使用sparse=True这些sparse函数的CUDA(带标志)上也是如此。

一种新的混合矩阵乘法hspmm运算,将sparse矩阵与密集矩阵相乘,并以混合张量(即1个sparse维度,1个dense维度)的形式返回一个矩阵。

几个CPU稀疏函数具有更高效的实现。

在一个很快被黑客入侵的@martinraison嵌入分类器训练脚本我们看到CUDAsparse表现以及CUDA密集:https : //gist.github.com/martinraison/1e7c18c6f6eda87f1cb4995b0e6a22a5

不同处理时间对比:

  • CPU CUDA
    Dense 10 0.86
    Sparse 0.15 0.13

named_parameters来过滤特定的参数类型

假设您想为模型的所有参数添加重量衰减,除了偏差。您如何只获得模型的偏见?为此 引入了nn.Module.named_parameters。 它加入named_childrennamed_modules帮助您过滤模型的特定属性。

过滤模型的偏差并给它们weight_decay为0的示例:

import torch
import torch.nn as nn
import torch.optim as optim
m = nn.Sequential(
      nn.Linear(10, 20),
      nn.ReLU(),
      nn.Linear(20, 20),
      nn.ReLU(),
    )
weights, biases = [], []
for name, p in m.named_parameters():
   if 'bias' in name:
       biases += [p]
   else:
       weights += [p]

optim.SGD([
  {'params': weights},
  {'params': biases, weight_decay=0}
], lr=1e-2, momentum=0.9, weight_decay=1e-5)

性能改进

  1. cumsum并且cumprod在适当的情况下通过使用某些推力原语在GPU上显着加快。
  2. LSTMCell并且GRUCell现在在GPU上通过融合内核显着更快
  3. CuDNN的默认算法已经更改,PRECOMP_GEMM这是一个 更快的算法,需要一小部分工作空间。以前,它曾经 是IMPLICIT_GEMM零工作空间,但是显着较慢。
  4. 通过将批次直接整理到共享内存中,数据加载器的5%至10%的改进。
  5. 现在,SVD通过分频(sgesdd)在GPU上进行计算,可以提供2x至5x的加速。
  6. 常用的功能expand已被移至C,以便在较小型号中具有更好的性能。

Bug修复

  1. 对大范围的THNN功能增加了对重量和偏差的连续检查
  2. random_当指定下限和上限时,使范围正确
  3. parallel_apply 现在可以拿出不可争议的论据
  4. gradDot功能中正确重塑(输入不必是1D矢量...)
  5. 添加 Variable.type_as
  6. 统一参数名称normrenorm拥有p=norm_typedim=dim
  7. btrisolve 工作在CPU双打
  8. 通过实现固定的torch.nn.Moduleipython autocomplete __dir__
  9. device_ids现在可以None再次F.data_parallel使用所有可用的GPU
  10. BatchNorm(<5.1.10)Dilation(6.0.20)中的解决方法cudnn错误
  11. Conv1d CPU中填补错误修复
  12. remainder并且cremainder对于整数类型是固定的
  13. 固定存储器泄漏btrisolvegetri
  14. 如果由于任何异常,nn.Module的源不能被检索,则将 序列化处理为非致命的
  15. collate_fn 现在保留numpy数组的类型
  16. is_tensoris_storage现在是固定的旧式Python类
  17. torch.cat 现在支持关键字参数
  18. CUDA集体支持的合并,但输入都被假定为相同的Tensor类型。这是固定的
  19. 修复autograd中的死锁错误,因为在特定的,linux发行版(特别是ArchLinux)中有一个基本的glibc错误
  20. abs现在固定为charshortcuda类型
  21. torch.diag在给出维度参数时修正自动格式
  22. 在CPU上修复分组卷积 bias=False
  23. 揭露dilated卷积ConvTranspose*d
  24. 修正了一个错误的HingeEmbeddingLoss地方margin现在可以通过kwargs指定

改进的错误消息

  1. 当没有CUDA设备可用时修复错误和消息。

下载

源代码(zip)

源代码(tar.gz)

 

在这里,我整理发布了Pytorch中文文档,方便大家查询使用,同时也准备了中文论坛,欢迎大家学习交流!

Pytorch中文文档

Pytorch中文论坛

Pytorch中文文档已经发布,完美翻译,更加方便大家浏览:

Torch中文网:https://ptorch.com/

Pytorch中文网:https://ptorch.com/

Pytorch中文文档:https://ptorch.com/docs/1/

本文转载自:https://ptorch.com/news/21.html

共有 人打赏支持
earnpls
粉丝 6
博文 26
码字总数 74
作品 0
昌平
程序员
私信 提问
重磅!Facebook 公布 PyTorch 1.0 预览版!

作者 | 琥珀 出品 | AI科技大本营(公众号ID:rgznai100) 近日,Facebook 宣布发布深度学习框架 PyTorch 1.0 开发者预览版,包括一些列工具和集成,使其与 Google Cloud、AWS、Azure 的机器...

CSDN资讯
10/04
0
0
重磅!Facebook公布PyTorch 1.0预览版!

作者 | 琥珀 出品 | AI科技大本营(公众号ID:rgznai100) 今日,Facebook 宣布发布深度学习框架 PyTorch 1.0 开发者预览版,包括一些列工具和集成,使其与 Google Cloud、AWS、Azure 的机器...

AI科技大本营
10/03
0
0
终于!大家心心念念的PyTorch Windows官方支持来了

  机器之心整理   参与:机器之心编辑部      五个小时前,PyTorch 官方 GitHub 发布 0.4.0 版本,大家心心念念的 Windows 支持终于来了。      GitHub 发布https://github.com/...

机器之心
04/25
0
0
PyTorch 1.0 预览版发布:Facebook 最新 AI 开源框架

Facebook 在人工智能项目中广泛使用自己的开源 AI 框架 PyTorch,最近,他们已经发布了 PyTorch 1.0 的预览版本。 如果你尚不了解,PyTorch 是一个基于 Python 的科学计算库。 PyTorch 利用 ...

作者: Avimanyu Bandyopadhyay
10/22
0
0
PyTorch 1.0 预览版发布:90% 的功能能经受住业界的考验

10 月 3 日,在首届 PyTorch 开发者大会上,Facebook 正式发布 PyTorch 1.0 开发者预览版,在带来 PyTorch 1.0 一系列更新的同时,还重点介绍了该框架的生态支持和教育方面的合作。 早在今年...

丛末
10/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周三乱弹 —— 有一天考拉麻麻拉肚子了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @瘟神灬念 :分享周汇洋的单曲《Man Srae(曼斯拉之舞)》:美滋滋。。。。 手机党少年们想听歌,请使劲儿戳(这里) 我听了一下 赶紧关了, ...

小小编辑
57分钟前
32
4
oh-my-zsh 自定义

GitHub 地址 基于 oh-my-zsh 的自定义配置,增加了一些个人常用插件与皮肤。 采用的是 git submodule 来维护,包括 oh-my-zsh,之所以这么搞,主要是手头有多台 linux 需要维护, 每台机器、...

郁也风
今天
6
0
Docker安装踩坑:E_FAIL 0x80004005的解决

参考 菜鸟教程--Windows Docker 安装 http://www.runoob.com/docker/windows-docker-install.html 官方文档-Install Docker Toolbox on Windows https://docs.docker.com/toolbox/toolbox_in......

karma123
今天
6
0
js垃圾回收机制和引起内存泄漏的操作

JS的垃圾回收机制了解吗? Js具有自动垃圾回收机制。垃圾收集器会按照固定的时间间隔周期性的执行。 JS中最常见的垃圾回收方式是标记清除。 工作原理:是当变量进入环境时,将这个变量标记为“...

Jack088
昨天
18
0
大数据教程(10.1)倒排索引建立

前面博主介绍了sql中join功能的大数据实现,本节将继续为小伙伴们分享倒排索引的建立。 一、需求 在很多项目中,我们需要对我们的文档建立索引(如:论坛帖子);我们需要记录某个词在各个文...

em_aaron
昨天
27
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部