PyTorch 1.3 已經發布了,新的版本不僅能支持 Android/iOS 移動端部署,甚至還能讓用戶去對手 Google 的 Colab 上調用雲 TPU。此外還有一大波新工具,涉及可解釋性、加密、以及關於圖像語音的諸多功能。PyTorch 1.3 帶來了三個實驗性的新功能:
允許用戶給張量維度命名,從而讓張量更易用,這樣就可以直接喊他們的名字,不用根據位置來跟蹤張量維度。
升級之前,你需要在代碼里寫註釋來給張量命名:
# Tensor[N, C, H, W]
images = torch.randn(32, 3, 56, 56)
images.sum(dim=1)
images.select(dim=1, index=0)
升級之後,就直接能在代碼里寫了,這樣可讀性大大提高:
NCHW = [『N』, 『C』, 『H』, 『W』]
images = torch.randn(32, 3, 56, 56, names=NCHW)
images.sum('C')
images.select('C', index=0)
另外,這項功能還能自動檢查 API 是否被正確的使用,提升了安全性,還可以直接用名字來重新排列尺寸。
開發 ML 應用程序時,有效利用伺服器端和設備上的計算資源非常重要。
為了支持在伺服器和邊緣設備上進行更有效的部署,PyTorch 1.3 現在支持用 eager 模式進行 8 位模型量化。所謂量化,是指降低精度執行計算和存儲的技術。
當前處於實驗性的量化功能包括對后訓練量化(post-training quantization)、動態量化(dynamic quantization)和量化感知訓練(quantization-aware training)的支持。它分別利用了 x86 和 ARM CPU 的 FBGEMM 和 QNNPACK 最新的量化內核後端,這些後端與 PyTorch 集成在一起,並且現在共享一個通用 API。
另外,為了在邊緣設備上高效的運行機器學習,PyTorch 1.3 支持端到端的工作流,從 Python 到部署在 iOS 和安卓端。
當然,這個功能還是早期實驗版本,針對端到端做了優化,新版本重點在:
noise_tunnel = NoiseTunnel(integrated_gradients)
attributions_ig_nt, delta = noise_tunnel.attribute(input, n_samples=10, nt_type='smoothgrad_sq', target=pred_label_idx)
_ = viz.visualize_image_attr_multiple(["original_image", "heat_map"],
["all", "positive"],
np.transpose(attributions_ig_nt.squeeze().cpu().detach().numpy(), (1,2,0)),
np.transpose(transformed_img.squeeze().cpu().detach().numpy(), (1,2,0)),
cmap=default_cmap,
show_colorbar=True)
加密工具 Cryp Ten:這是一個新的基於社區的研究平台,用於推動隱私保護 ML 領域的發展。
Fairseq 的語音擴展:語言翻譯和音頻處理是系統和應用程序(例如搜索,翻譯,語音和助手)中的關鍵組件。由於變壓器等新架構的發展以及大規模的預訓練方法的發展,最近在這些領域取得了巨大的進步。
阿里云:阿里雲的集成涉及 PyTorch 1.x 的一鍵式解決方案,數據科學 Workshop notebook 服務,使用 Gloo/NCCL 進行的分散式訓練,以及與阿里巴巴 IaaS(如 OSS、ODPS 和 NAS)的無縫集成。
硬體生態擴展:除了主要的 GPU 和 CPU 合作夥伴之外,PyTorch 生態系統還支持專用的機器學習加速器。比如英特爾不久前推出的 NNP-I 推理晶元、Habana Labs 的 AI 處理器
參考:量子位
[admin
]