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

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

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

在手機(jī)上用TorchVision庫
首先就是PyTorch Mobile最受歡迎的功能之一Mobile Interpreter更新了。
最新版本能夠?qū)⒁苿釉O(shè)備上的二進(jìn)制文件大小降低到原來大小的一半以下。
比如,在arm64-v8a架構(gòu)的Android設(shè)備中使用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現(xiàn)在可以提供圖像、文字、音頻和視頻在內(nèi)的一整套demo APP。

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

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

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

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