展會信息港展會大全

Pytorch 0.3.0發(fā)布,實現(xiàn)多方面提速,增加對ONNX支持
來源:互聯(lián)網(wǎng)   發(fā)布日期:2017-12-07   瀏覽:342次  

導(dǎo)讀:2017 年初,F(xiàn)acebook 在機器學(xué)習(xí)和科學(xué)計算工具 Torch 的基礎(chǔ)上,針對 Python 語言發(fā)布了一個全新的機器學(xué)習(xí)工具包 PyTorch。一經(jīng)發(fā)布,這款開源工具包就受到廣泛關(guān)注和討論,經(jīng)過幾個月的發(fā)展,目前 PyTorch 已經(jīng)成為從業(yè)者最重要的研發(fā)工具之一 ......

2017 年初,F(xiàn)acebook 在機器學(xué)習(xí)和科學(xué)計算工具 Torch 的基礎(chǔ)上,針對 Python 語言發(fā)布了一個全新的機器學(xué)習(xí)工具包 PyTorch。一經(jīng)發(fā)布,這款開源工具包就受到廣泛關(guān)注和討論,經(jīng)過幾個月的發(fā)展,目前 PyTorch 已經(jīng)成為從業(yè)者最重要的研發(fā)工具之一。經(jīng)過將近一年的發(fā)展,日前,迎來了 PyTorch 0.3.0 版本。

根據(jù)官方文檔的介紹,此次增加了多個函數(shù)和功能,多方面的性能均實現(xiàn)提升。

重大變更

0. 3 版本中刪掉了 Variable.reinforce () 等隨機函數(shù),因為它們的功能有限,并且會影響到性能。設(shè)置隨機函數(shù)的初衷是為了避免采樣值的 book-keeping,在實際中,由于各種各樣的原因,用戶的代碼中仍然會包括 book-keeping。他們引入了 torch.distributions 包來代替隨機函數(shù)。

之前的代碼如下:

probs = policy_network (state)

action = probs.multinomial ()

next_state, reward = env.step (action)

action.reinforce (reward)

action.backward ()

現(xiàn)在的代碼如下:

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_prob (action) * reward

loss.backward ()

新的功能

1、目前,有些損失函數(shù)能直接計算 mini-batch 中每個 sample 的損失值。

2、構(gòu)建了一個 in-built Profiler,能對模型進(jìn)行瓶頸分析,這個 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、優(yōu)化器

optim.SparseAdam:能實現(xiàn)適用于稀疏張量的簡單亞當(dāng)算法

優(yōu)化器中增加了 add_param_group 函數(shù),能在構(gòu)建好的優(yōu)化器中增加新的參數(shù)組。

除此之外,還增加了新的張量函數(shù)和功能,在新版本中,能通過 ONNX 將模型遷移到其他框架上。另外,在加速方面,重寫 gpu kernel 之后,softmax 和 log_softmax 的速度能實現(xiàn) 4-256 倍的提升;在分布式 AllReduce 中,能實現(xiàn) 2.5-3 倍的性能提升;torch.norm 函數(shù)的 backward 能實現(xiàn) 1.5 倍的加速;pack_padded_sequence 的性能也有提升。

具體的介紹可以參加說明文檔:https://github.com/pytorch/pytorch/releases/tag/v0.3.0

雷鋒網(wǎng) AI 科技評論后續(xù)也將持續(xù)關(guān)注 PyTorch 的更新。

贊助本站

相關(guān)內(nèi)容
AiLab云推薦
展開

熱門欄目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能實驗室 版權(quán)所有    關(guān)于我們 | 聯(lián)系我們 | 廣告服務(wù) | 公司動態(tài) | 免責(zé)聲明 | 隱私條款 | 工作機會 | 展會港