當前位置:
首頁 > 新聞 > 正式支持Transformer與TensorBoard,PyTorch 1.2新鮮出爐

正式支持Transformer與TensorBoard,PyTorch 1.2新鮮出爐

機器之心報道

參與:李亞洲、杜偉


在 PyTorch 上,你可以像調用卷積一樣調用 Transformer 了。

PyTorch 作為 Facebook 開發和維護的一個開源框架,近來的發展勢頭相當強勁。自 2017 年初首發以來,PyTorch 靈活、動態的編程環境及對用戶友好的界面使其非常適用於快速實驗,因此在社區內迅速發展壯大。

2018 年 12 月,PyTorch 1.0 正式版發布,解決了包括可重用、性能、編程語言和可擴展性等在內的一系列問題。

今日,PyTorch 發布最新版本,做了一系列更新,包括正式支持 Transformer、TensorBoard 等。

正式支持 Transformer 與 TensorBoard

基於論文《Attention is All You Need》,PyTorch 1.2 版本加入了標準的 nn.Transformer 模塊。nn.Transformer 模塊完全依賴注意機制描述輸入和輸出之間的全局依賴關係。nn.Transformer 模塊的組件是單獨設計的,以便於被分開使用。例如,沒有更大的 nn.Transformer 的情況下,nn.TransformerEncoder 可被自身使用。新的 API 包括:

現在,簡單的輸入 from torch.untils.tensorboard import SummaryWriter 就能啟動 TensorBoard,它已經不再是實驗版了,這就表示 PyTorch 終於正式支持 TensorBoard 啦。

一旦我們安裝了 TensorBoard,PyTorch 的這項新 API 就會將模型和指標記錄到 TensorBoard UI 的目錄中,並進行可視化。它對所有基於 PyTorch、Caffe 2 的模型和張量都支持數量、圖像、直方圖、圖和嵌入可視化。

其它重要更新

新的 TorchScript API

PyTorch 1.2 版本為 nn.Modules 轉換成 ScriptModules 提供了新的、易用的 API。簡單用例如下:

torch.jit.script() 將嘗試以遞歸形式編譯指定的 nn.Module,其中包括調用自 forward() 的任何子模塊或方法。相關變更情況以及如何遷移詳見《migration guide》。

提升 TorchScript Python 語言覆蓋範圍

在 PyTorch 1.2 版本中,TorchScript 顯著提升了自身對 Python 語言結構和 Python 標準庫的支持。亮點包括如下:

  • 提前返回、終止和繼續;
  • 基於迭代器的結構,如 for..in 迴路、zip() 和 enumerate();
  • NamedTuples;
  • 支持 math 和 string 庫
  • 支持大多數 Python 內部函數

擴展 Onnx 導出

通過與微軟合作,PyTorch 1.2 版本全面支持導出 ONNX Opset 版本 7 (V1.2)、版本 8(v1.3)、版本 9(v1.4) 以及版本 10 (v1.5)。PyTorch 1.2 還增強了常量摺疊通道(constant folding pass),以支持 ONNX 最新可用版本 Opset 10。此外,用戶現在可以註冊自己的符號(symbolic)以導出自定義操作,同時可以在導出時指定輸入的動態維度。重大改進之處如下:

  • 支持多個 Opsets 版本,包括 Opset 10 版本中導出 dropout、slice、flip 和 interpolate;
  • 改進 ScriptModule,包括支持多輸出、張量 factory 以及作為輸入和輸出的元組;
  • 支持 10 多個額外的 PyTorch 操作符,包括導出自定義操作符。

github參考鏈接:pytorch/pytorch/releases

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

PyTorch深度概率推斷工具Brancher,掌握ML和Python基礎即可上手
深度強化學習入門難?這份資料手把手教會你

TAG:機器之心 |