歡迎您光臨本站 註冊首頁

PyTorch 1.4 發布:支持 Java 和分散式模型并行訓練

←手機掃碼閱讀     admin @ 2020-01-26 , reply:0

PyTorch 團隊上周發布了最新的 PyTorch 1.4 版本更新日誌顯示,此版本包含了 1500 多次提交,並在 JIT、ONNX、分散式、性能和 Eager 前端等方面進行了改進,以及對於移動版本和量化方面的實驗領域也進行了改進。1.4 還增加了新的實驗性功能,其中包括基於 RPC 的分散式模型并行訓練以及對 Java 的語言綁定。

此外,PyTorch 1.4 是支持 Python 2 的最後一個版本,同時也是支持 C++11 的最後一個版本。因此官方建議從 1.4 開始遷移到 Python 3,並使用 C++14 進行構建,以方便將來從 1.4 過渡到 1.5。

更新亮點

為 PyTorch Mobile 提供 Build 級別自定義的支持

在 1.3 中推出處於實驗性階段的 Pytorch Mobile 之後,1.4 版本增加了更多對移動端的支持,包括以細粒度級別( fine-grain level)自定義構建腳本的功能。此功能使得移動端開發者能夠優化庫的大小 —— 僅在庫的模型中包括它們使用的 operators,同時在此過程中顯著減少了其設備佔用的空間。早期結果顯示,定製的 MobileNetV2 比預構建的 PyTorch 移動端庫小 40% 至 50%。

用於選擇性地僅編譯 MobileNetV2 所需的 operators 的示例代碼:


# Dump list of operators used by MobileNetV2:
import torch, yaml
model = torch.jit.load('MobileNetV2.pt')
ops = torch.jit.export_opnames(model)
with open('MobileNetV2.yaml', 'w') as output:
    yaml.dump(ops, output)

# Build PyTorch Android library customized for MobileNetV2:
SELECTED_OP_LIST=MobileNetV2.yaml scripts/build_pytorch_android.sh arm64-v8a

# Build PyTorch iOS library customized for MobileNetV2:
SELECTED_OP_LIST=MobileNetV2.yaml BUILD_PYTORCH_MOBILE=1 IOS_ARCH=arm64 scripts/build_ios.sh

分散式模型并行訓練(實驗性)

隨著諸如 RoBERTa 等萬億級別參數的大型模型出現,模型并行訓練對於幫助研究人員突破極限變得越來越重要。此版本提供了分散式 RPC 框架,以支持分散式模型并行訓練。此框架支持遠程運行函數,以及在無需複製真實數據的前提下引用遠程對象。PyTorch 還提供了 autograd 和 Optimizer API,能夠透明地在後台運行並跨 RPC 邊界更新參數。

Java bindings(實驗性)

除了支持 Python 和 C++ 外,此版本還增加了對 Java bindings 的實驗性支持。基於 PyTorch Mobile 中為 Android 開發的介面,我們可通過新的 Java bindings 從任何 Java 程序中調用 TorchScript 模型。不過要注意的是,此版本的 Java bindings 僅支持 Linux 平台,且只能用於進行模型推理。開發團隊表示會在後續的版本中擴展支持。

有關如何在 Java 中使用 PyTorch 請查看以下代碼片段:


Module mod = Module.load("demo-model.pt1");
Tensor data =
    Tensor.fromBlob(
        new int[] {1, 2, 3, 4, 5, 6}, // data
        new long[] {2, 3} // shape
        );
IValue result = mod.forward(IValue.from(data), IValue.from(3.0));
Tensor output = result.toTensor();
System.out.println("shape: " + Arrays.toString(output.shape()));
System.out.println("data: " + Arrays.toString(output.getDataAsFloatArray()));

下載地址:https://github.com/pytorch/pytorch/releases/tag/v1.4.0


[admin ]

來源:OsChina
連結:https://www.oschina.net/news/113007/pytorch-1-4-released
PyTorch 1.4 發布:支持 Java 和分散式模型并行訓練已經有148次圍觀

http://coctec.com/news/soft/show-post-223924.html