从远程源加载繁重的 CoreML 模型

Load a heavy CoreML model from a remote source

我们有一个很重的 CoreML 模型 (170MB~),我们想将其包含在我们的 iOS 应用程序中。

由于我们不希望应用程序太大,我们创建了一个较小的模型(性能较低),我们可以直接包含它,我们的目的是在应用程序启动时下载沉重的模型并在两者之间切换下载重型模型时的两个。

我们最初的想法是使用 Apple's CoreML Model Deployment 解决方案,但很快就证明这对我们来说是不可能的,因为 Apple 要求 MLModel 存档最大为 50MB。
所以问题是,是否有一种替代解决方案来从远程源加载 CoreML 模型,类似于 Apple 的解决方案,以及如何实现它?

如有任何帮助,我们将不胜感激。谢谢!

把mlmodel文件放在你自己的服务器上,用你喜欢的方法下载到应用程序的Documents文件夹,为下载的文件创建一个URL,使用MLModel.compileModel(:at)编译它,初始化使用编译模型的 MLModel(或自动生成的 class)。