久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

PyTorch 1.5發(fā)布,,C++前端重大更新、引入新存儲(chǔ)格式提高性能

 風(fēng)聲之家 2020-04-24

原創(chuàng) oschina 開(kāi)源中國(guó) 昨天

PyTorch 1.5 發(fā)布了,此版本包括新增加了幾個(gè)主要的 API 和一些改進(jìn),、對(duì) C++ 前端有重大更新,、用于計(jì)算機(jī)視覺(jué)模型的“通道維持(channels last)”存儲(chǔ)格式,,以及用于模型并行訓(xùn)練的分布式 RPC 框架的穩(wěn)定版本,。

同時(shí),,此版本還提供了針對(duì) hessian 和 jacobian 的 autograd 的新 API,以及一個(gè)受 pybind 啟發(fā)的允許創(chuàng)建 Custom C++ Class(定制類(lèi))的 API,。

C++ FRONTEND API (STABLE)

之前被標(biāo)記為實(shí)驗(yàn)性質(zhì)的 C++ 前端 API 現(xiàn)在已經(jīng)與 Python 地位相當(dāng),,并且總體特性已移至“穩(wěn)定”狀態(tài)。一些主要亮點(diǎn)包括:

  • 現(xiàn)在覆蓋率達(dá)到約 100%,,并提供有關(guān) C++ torch::nn 模塊/函數(shù)的文檔,,開(kāi)發(fā)者可以輕松地將其模型從 Python API 轉(zhuǎn)換為 C++ API。

  • C++ 中的優(yōu)化器與 Python 中的有所不同:C++ 優(yōu)化器不能將參數(shù)組作為輸入,,而 Python 可以,。此外,步驟函數(shù)的實(shí)現(xiàn)也不完全相同,。在 1.5 版本中,,C++ 優(yōu)化器的行為將始終與 Python 等效器相同。

  • C++ 中缺少?gòu)埩慷嗑S度索引 API 是一個(gè)眾所周知的問(wèn)題,,并在 PyTorch GitHub issue 跟蹤器和論壇中引起了很多討論,。以前的解決方法是結(jié)合使用 arrow/select/index_select/masked_select,與 Python API 的優(yōu)雅張量 [:, 0, ..., mask] 語(yǔ)法相比,,它比較笨拙且容易出錯(cuò),。在 1.5 版本中,開(kāi)發(fā)者可以使用 tensor.index({Slice(), 0, “...”, mask}) 達(dá)到相同的目的,。

‘CHANNELS LAST’ MEMORY FORMAT FOR COMPUTER VISION MODELS (EXPERIMENTAL)

用于計(jì)算機(jī)視覺(jué)模型的“通道維持(channels last)”存儲(chǔ)格式,,目前處于實(shí)驗(yàn)階段。該格式的內(nèi)存布局可以充分發(fā)揮性能高效的卷積算法和硬件(NVIDIA 的 Tensor Core,、FBGEMM,、QNNPACK)的能力。此外,,它被設(shè)計(jì)為通過(guò)運(yùn)算符自動(dòng)傳播,,從而允許在內(nèi)存布局之間輕松切換。

CUSTOM C++ CLASSES (EXPERIMENTAL)

此版本添加了一個(gè)新的 API torch.CutomClassHolder,,用于將自定義 C++ 類(lèi)同時(shí)綁定到 TorchScript 和 Python,,該 API 的語(yǔ)法與 pybind11 幾乎相同。

它允許開(kāi)發(fā)者向 TorchScript 類(lèi)型系統(tǒng)和運(yùn)行時(shí)系統(tǒng)暴露其 C++ 類(lèi)及其方法,,以便他們可以實(shí)例化和操作 TorchScript/Python 中的任意 C++ 對(duì)象,。C++ 綁定示例:

template <class T>
struct MyStackClass :
torch::CustomClassHolder {
std::vector<T> stack_;
MyStackClass(std::vector<T> init) : stack_(std::move(init)) {}

void push(T x) {
stack_.push_back(x);
}
T pop() {
auto val = stack_.back();
stack_.pop_back();
return val;
}
};

static auto testStack =
torch::class_<MyStackClass<std::string>>("myclasses", "MyStackClass")
.def(torch::init<std::vector<std::string>>())
.def("push", &MyStackClass<std::string>::push)
.def("pop", &MyStackClass<std::string>::pop)
.def("size", [](const c10::intrusive_ptr<MyStackClass>& self) {
return self->stack_.size();
});

它暴露了可以在 Python 和 TorchScript 中使用的類(lèi),如下所示:

@torch.jit.script
def do_stacks(s : torch.classes.myclasses.MyStackClass):
s2
= torch.classes.myclasses.MyStackClass(["hi", "mom"])
print(s2.pop()) # "mom"
s2.push("foobar")
return s2 # ["hi", "foobar"]

DISTRIBUTED RPC FRAMEWORK APIS (NOW STABLE)

分布式 RPC 框架在 1.4 版本中以實(shí)驗(yàn)性形式出現(xiàn),,現(xiàn)在它已經(jīng)處于穩(wěn)定狀態(tài),。此過(guò)程涉及許多增強(qiáng)功能和 bug 修復(fù),,以使分布式 RPC 框架總體上更可靠和更健壯。同時(shí)還添加了兩個(gè)新特性,,包括概要分析支持,,在 RPC 中使用 TorchScript 函數(shù)以及一些易于使用的增強(qiáng)功能。

此外,,從 1.5 開(kāi)始,,PyTorch 不再支持 Python 2,今后,,對(duì) Python 的支持將僅限于 Python 3,,特別是 Python 3.5、3.6,、3.7 和 3.8,。

更多具體的細(xì)節(jié)見(jiàn)發(fā)布公告:

https://pytorch.org/blog/pytorch-1-dot-5-released-with-new-and-updated-apis

推薦閱讀

樹(shù)莓派銷(xiāo)量突然猛增

80%的代碼曾由一人提交,這項(xiàng)目何以從ASF畢業(yè)

紅帽借“訂閱”模式成開(kāi)源一哥,,首創(chuàng)者升任總裁

Git 15周年:當(dāng)年的分道揚(yáng)鑣,,成就了今天的開(kāi)源傳奇

Windows中現(xiàn)在有獨(dú)立的Linux文件夾系統(tǒng)

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多