PyTorch 1.4最新版

2020-01-17  本文已影响0人  码农啊涛

本次更新PyTorch引入了torch.distributed.rpc库。这是一个用于构建能够在模型训练和推断时远程运行函数。

更新内容

修剪

修剪功能已添加到nn.utils.prune模块中的PyTorch中。这为分层和全局的结构化和非结构化的基于量级的普通和随机修剪技术提供了开箱即用的支持,并且还可以从用户提供的蒙版中进行自定义修剪。

要修剪张量,请首先在中可用的那些中选择修剪技术nn.utils.prune(或通过子类化实现自己的修剪技术BasePruningMethod)。

从 torch.nn.utils 导入修剪吨= torch.rand(2,5)p =修剪L1Unstructured(数量= 0.7)pruned_tensor = p.prune(t)

要修剪模块,请选择nn.utils.prune(或实现自己的)修剪功能之一,并指定应该对哪个模块和该修剪中的哪个参数进行操作。

米= nn.Conv2d(3,1,2)prune.ln_structured(module = m,name = ' weight ',数量= 5,n = 2,dim = 1)

修剪通过将参数weight(在上面的示例中)转换为属性,然后将其替换为存储未修剪的张量版本的新参数weight_orig(即,附加"_orig"到初始参数name)来重新参数化模块。修剪掩码存储为名为weight_mask(即附加"_mask"到初始参数name)的缓冲区。weight通过使用PyTorch's与更新的掩码进行乘法运算,在每次前向传递之前应用修剪forward_pre_hooks。

通过在同一参数上重复调用修剪功能,可以无缝启用迭代修剪(这将通过使用PruningContainer引擎盖下的自动处理连续蒙版的组合)。

nn.utils.prune通过子类化BasePruningMethod基类并compute_mask根据新修剪技术的逻辑用指令来实现该方法以计算掩码,可以很容易地扩展它来支持新修剪功能。

新的功能

torch.optim.lr_scheduler 现已支持「链式更新(chaining)」。即用户可以定义两个 schedulers,并交替在训练中使用。

>>> import torch

>>> from torch.optim import SGD

>>> from torch.optim.lr_scheduler import ExponentialLR, StepLR

>>>

>>> model = [torch.nn.Parameter(torch.randn(2, 2, requires_grad=True))]

>>> optimizer = SGD(model, 0.1)

>>>

>>> scheduler1 = ExponentialLR(optimizer, gamma=0.9)

>>> scheduler2 = StepLR(optimizer, step_size=3, gamma=0.1)

>>>

>>> for epoch in range(4):

>>>      print(epoch, scheduler2.get_last_lr()[0])

>>>

>>>      optimizer.step()

>>>      scheduler1.step()

>>>      scheduler2.step()

0 0.11 0.090000000000000012

 0.081000000000000023 

0.007290000000000024 

0.00656100000000002

PyTorch各个版本下载地址:

1、版本pytorch1.1.0

(1)CPU版本

https://download.pytorch.org/whl/cpu/torch-1.1.0-cp36-cp36m-win_amd64.whl

(2)GPU版本

https://download.pytorch.org/whl/cu100/torch-1.1.0-cp36-cp36m-win_amd64.whl (CUDA 10.0)

https://download.pytorch.org/whl/cu90/torch-1.1.0-cp36-cp36m-win_amd64.whl (CUDA 9.0)

2、版本pytorch1.0.1

(1)CPU版本

https://download.pytorch.org/whl/cpu/torch-1.0.1-cp36-cp36m-win_amd64.whl

(2)GPU版本

https://download.pytorch.org/whl/cu80/torch-1.0.1-cp36-cp36m-win_amd64.whl   (CUDA 8.0)

https://download.pytorch.org/whl/cu90/torch-1.0.1-cp36-cp36m-win_amd64.whl   (CUDA 9.0)

https://download.pytorch.org/whl/cu100/torch-1.0.1-cp36-cp36m-win_amd64.whl   (CUDA 10.0)

3、版本pytorch1.0.0

(1)CPU版本

https://download.pytorch.org/whl/cpu/torch-1.0.0-cp36-cp36m-win_amd64.whl

(2)GPU版本

https://download.pytorch.org/whl/cu80/torch-1.0.0-cp36-cp36m-win_amd64.whl  (CUDA 8.0)

https://download.pytorch.org/whl/cu90/torch-1.0.0-cp36-cp36m-win_amd64.whl   (CUDA 9.0)

https://download.pytorch.org/whl/cu100/torch-1.0.0-cp36-cp36m-win_amd64.whl  (CUDA 10.0)

 4、版本pytorch0.4.1

(1)CPU版本

https://download.pytorch.org/whl/cpu/torch-0.4.1-cp36-cp36m-win_amd64.whl

(2)GPU版本

https://download.pytorch.org/whl/cu80/torch-0.4.1-cp36-cp36m-win_amd64.whl   (CUDA 8.0)

https://download.pytorch.org/whl/cu90/torch-0.4.1-cp36-cp36m-win_amd64.whl   (CUDA 9.0)

https://download.pytorch.org/whl/cu92/torch-0.4.1-cp36-cp36m-win_amd64.whl   (CUDA 9.2)

上一篇下一篇

猜你喜欢

热点阅读