为啥在 iOS 上使用 Caffe2 或 Core-ML 而不是 LibTorch(.pt 文件)?

Posted

技术标签:

【中文标题】为啥在 iOS 上使用 Caffe2 或 Core-ML 而不是 LibTorch(.pt 文件)?【英文标题】:Why use Caffe2 or Core-ML instead of LibTorch(.pt file) on iOS?为什么在 iOS 上使用 Caffe2 或 Core-ML 而不是 LibTorch(.pt 文件)? 【发布时间】:2020-09-24 10:16:34 【问题描述】:

似乎有几种方法可以在 ios 上运行 Pytorch 模型。

    PyTorch(.pt) -> onnx -> caffe2 PyTorch(.pt) -> onnx -> Core-ML (.mlmodel) PyTorch(.pt) -> LibTorch (.pt) PyTorch 移动版?

以上方法有什么区别? 为什么人们使用需要模型格式转换的caffe2或Core-ml(.mlmodel),而不是LibTorch?

【问题讨论】:

【参考方案1】:

Core ML 可以使用 Apple 神经引擎 (ANE),这比在 CPU 或 GPU 上运行模型要快得多。如果设备没有 ANE,Core ML 可以自动回退到 GPU 或 CPU。

我还没有真正详细研究过 PyTorch Mobile,但我认为它目前只在 CPU 上运行,而不是在 GPU 上。而且它肯定不会在 ANE 上运行,因为只有 Core ML 可以做到。

转换模型可能很麻烦,尤其是从 PyTorch 转换需要先通过 ONNX。但您最终会以更快的方式运行这些模型。

【讨论】:

以上是关于为啥在 iOS 上使用 Caffe2 或 Core-ML 而不是 LibTorch(.pt 文件)?的主要内容,如果未能解决你的问题,请参考以下文章

Caffe2源码解析

为啥我的图像(本地资产或下载的资产)没有在 iOS 14 上显示,而是在使用 ReactNative 0.62.x 的 Android 上显示?

Flutter ios:我收到“(在通道 plugins.flutter.io/firebase_core 上找不到方法 Firebase#initializeCore 的实现)”,不明白为啥

git clone pytorch或caffe2速度慢的解决办法

开源产业级深度学习框架 Caffe2

.NET Core - 为啥我应该使用视图组件而不是集成在 MVC 应用程序或 Razor 页面中的 Blazor 组件