瞧一瞧:Pytorch 0.3.0 发布,实现多方面提速,增加对ONNX支持
雷锋网 AI 科技评论按,2017 年初,Facebook 在机器学习和科学计算工具 Torch 的基础上,针对 Python 语言发布了一个全新的机器学习工具包 PyTorch。一经发布,这款开源工具包就受到广泛关注和讨论,经过几个月的发展,目前 PyTorch 已经成为从业者最重要的研发工具之一。经过将近一年的发展,日前,迎来了 PyTorch 0.3.0 版本。
根据官方文档的介绍,此次增加了多个函数和功能,多方面的性能均实现提升。
重大变更
0.3 版本中删掉了 Variable.reinforce() 等随机函数,因为它们的功能有限,并且会影响到性能。设置随机函数的初衷是为了避免采样值的 book-keeping,在实际中,由于各种各样的原因,用户的代码中仍然会包括 book-keeping。他们引入了 torch.distributions 包来代替随机函数。
之前的代码如下:
probs = policy_network(state)
action = probs.multinomial()
next_state, reward = env.step(action)
action.reinforce(reward)
action.backward()
现在的代码如下:
probs = policy_network(state)
# NOTE: categorical is equivalent to what used to be called multinomial
m = torch.distributions.Categorical(probs)
action = m.sample()
next_state, reward = env.step(action)
loss = -m.log_pr集体土地征收补偿的范围
ob(action) * rewardloss.backward()
新的功能
1、目前,有些损失函数能直接计算 mini-batch 中每个 sample 的损失值。
2、构建了一个 in-built Profiler,能对模型进行瓶颈分析,这个 Profiler 同时支持 CPU 和 CUDA 模型。
更多信息可以参见 http://pytorch.org/docs/0.3.0/autograd.html#profiler
3、增加 Higher order gradients 模块,支持如下层:
- 土地征收与使用补偿新标准
ConvTranspose, AvgPool1d, AvgPool2d, LPPool2d, AvgPool3d, MaxPool1d, MaxPool2d, AdaptiveMaxPool, AdaptiveAvgPool, FractionalMaxPool2d, MaxUnpool1d, MaxUnpool2d, nn.Upsample, ReplicationPad2d, ReplicationPad3d, ReflectionPad2d
PReLU, HardTanh, L1Loss, SoftSign, ELU, RReLU, Hardshrink, Softplus, SoftShrink, LogSigmoid, Softmin, GLU
MSELoss, SmoothL1Loss, KLDivLoss, HingeEmbeddingLoss, SoftMarginLoss, MarginRankingLoss, CrossEntropyLoss
DataParallel
4、优化器
optim.SparseAdam:能实现适用于稀疏张量的简单亚当算法
优化器中增加了 add_param_group 函数,能在构建好的优化器中增加新的参数组。
除此之外,还增加了新的张量函数和功能,在新版本中,能通过 ON国有土地上自建房属于违建吗
NX 将模型迁移到其他框架上。另外,在加速方面,重写 gpu kernel 之后,softmax 和 log_softmax 的速度能实现 4-256 倍的提升;在分布式 AllReduce 中,能实现 2.5-3 倍的性能提升;torch.norm 函数的 backward 能实现 1.5 倍的加速;pack_padded_sequence 的性能也有提升。
雷锋网 AI 科技评论编译整理,具体的介绍可以参加说明文档,里面有详细说明。地址如下:https://github.com/pytorch/pytorch/releases/tag/v0.3.0
雷锋网 AI 科技评论后续也将持续关注PyTorch的更新。
雷峰网版权文章,未经授权禁止转载。详情见转载须知。