PyTorch 1.9發布!移動端瘋狂更新,網友:我的最愛
本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。
時隔僅3個月,PyTorch再次迎來升級——1.9版本。
這一次,官方把重頭戲放在了移動端上。
不僅Mobile Interpreter發布了新版本,而且TorchVision庫也支持在手機上使用了,iOS、Android都支持!

網友看了都表示:
這一次更新中,我對移動端最感興趣。

而此次1.9版本集合了自2021年3月1.8版本發布以來,超過3400次GitHub提交。
除了移動設備端方面,還有其他諸多亮點:
- 前端API改進(包括torch.linalg、torch.special和 Complex Autograd)
- 實現對彈性、容錯分布式訓練的本地支持
- 更新PyTorch模型性能分析器
LeCun也在Twitter上站臺,稱贊PyTorch做的一次比一次好!

在手機上用TorchVision庫
首先就是PyTorch Mobile最受歡迎的功能之一Mobile Interpreter更新了。
最新版本能夠將移動設備上的二進制文件大小降低到原來大小的一半以下。
比如,在arm64-v8a架構的Android設備中使用MobileNetV2的pt大小,壓縮前為17.8MB、壓縮后為8.6MB。
而使用新版Mobile Interpreter后,可以把壓縮前的文件大小降低到8MB以下,壓縮后的大小降低到4MB以下。
與此同時,從1.9版本開始,用戶可以在iOS、Android的APP上使用TorchVision庫了。
在iOS上,它需要和主要的PyTorch庫鏈接在一起使用;在Android上,則可作為gradle依賴項添加。
在demo APP方面,這一次更新了一個新的基于PyTorch Video庫的視頻APP和一個基于最新torchaudio,、wave2vec模型的語音識別APP。
有了這兩個APP后,PyTorch現在可以提供圖像、文字、音頻和視頻在內的一整套demo APP。

前端API改進
1.9版本中,對torch.linalg、torch.special和Complex Autograd等模塊進行了完善。
torch.linalg模塊現在可以實現NumPy線性代數模塊中的每個函數;
Complex Autograd更新的新功能,可以計算復雜梯度、優化損失函數。
此外,為了幫助調試和編寫可重現的程序,PyTorch 1.9增加了一個torch.use_determinstic_algorithms選項。
這是為了避免運行中可能會出現的錯誤,如下所示:

分布式訓練
TorchElastic是PyTorch的一個核心功能,它能夠讓用戶在搶占式實例上運行分布式訓練。
△TorchElastic運行原理
新版本中,添加了一個基于c10d::Store的“獨立”集合點,能夠在本地支持彈性、容錯分布式訓練。
此外,現在還可在RPC中支持CUDA,并支持對分布式訓練進行分析等。
PyTorch Profiler
PyTorch Profiler是用來對PyTorch模型性能分析的一個工具。
通過可視化頁面來幫助我們分析具體運行情況。

在1.9版本中,可以在Windows和Mac中支持新的torch.profiler API了。
新的API支持現有分析器功能,可以與CUPTI庫集成(僅限Linux),追蹤設備上的CUDA內核,并為長期運行項目提供支持,例如:

PyTorch Profiler Tensorboard插件還更新了帶有NCCL的分布式訓練摘要視圖、內存分析視圖、從Microsoft VSCode啟動時可跳轉到源代碼等新功能。
更多更新信息請戳:
https://pytorch.org/blog/pytorch-1.9-released/