注意
PyTorch Mobile 已不再活跃支持。请查阅 ExecuTorch,这是 PyTorch 全新的设备端推理库。
PyTorch Mobile
在边缘设备上执行机器学习模型的需求日益增长,这有助于减少延迟、保护隐私并支持新的交互式用例。
PyTorch Mobile 运行时测试版允许您在完全留在 PyTorch 生态系统内的情况下,无缝地完成从模型训练到部署的过程。它提供了一个端到端的工作流程,简化了移动设备的研发到生产环境。此外,它还通过联邦学习技术为隐私保护功能铺平了道路。
PyTorch Mobile 目前处于测试阶段,但已在广泛的生产环境中得到应用。一旦 API 锁定,它将很快发布稳定版本。
主要功能
- 支持 iOS、Android 和 Linux
- 提供涵盖移动应用中集成机器学习所需的常见预处理和集成任务的 API
- 通过 TorchScript IR 支持追踪和脚本化
- 支持用于 Arm CPU 的 XNNPACK 浮点内核库
- 集成 QNNPACK 用于 8 位量化内核。包括对每通道量化、动态量化等的支持
- 提供 适用于 Android 和 iOS 的高效移动解释器。还支持构建级别的优化和根据用户应用程序所需的算子进行的有选择编译(即,应用程序最终的二进制大小取决于应用程序实际需要的算子)。
- 通过 optimize_for_mobile 简化模型优化
- 对 GPU、DSP 和 NPU 等硬件后端的支持将很快在 Beta 版本中提供
原型功能
我们已在 PyTorch 每夜构建版本中推出以下原型功能,并非常希望在 PyTorch 论坛上获得您的反馈
- 通过 Metal 在 iOS 上支持 GPU
- 通过 Vulkan 在 Android 上支持 GPU
- 通过 Google NNAPI 在 Android 上支持 DSP 和 NPU
部署工作流程
以下图描绘了从训练到移动部署的典型工作流程,其中包含可选的模型优化步骤。

入门示例
- 适用于 iOS 的 PyTorch Mobile 运行时
- 适用于 Android 的 PyTorch Mobile 运行时
- 教程中的 PyTorch Mobile 代码范例
- iOS 上的图像分割 DeepLabV3
- Android 上的图像分割 DeepLabV3
- iOS 上的 D2Go 对象检测
- Android 上的 D2Go 对象检测
- iOS 上的 PyTorchVideo
- Android 上的 PyTorchVideo
- iOS 上的语音识别
- Android 上的语音识别
- iOS 上的问答
- Android 上的问答
演示应用程序
我们新的演示应用程序还包括图像分割、对象检测、神经机器翻译、问答和视觉 Transformer 的示例。它们在 iOS 和 Android 上均可用。