Ios 预热CoreML模型

Ios 预热CoreML模型,ios,swift,coreml,mlmodel,Ios,Swift,Coreml,Mlmodel,我在我的MLModel上的第一次预测中看到的结果慢了3-4倍。似乎一旦你运行了第一个预测,它就会加热模型。找不到关于它的任何官方信息 预热我的模型的正确方法是什么?在应用程序启动时使用虚拟数据在异步线程上调用它?如@Alladinian所述,从iOS 14开始,您可以使用MLModel.load(contentsOf:…)函数。 以下是预加载本地.mlmodel文件的使用示例: if let url = Bundle.main.url(forResource: "myModel&quo

我在我的
MLModel
上的第一次预测中看到的结果慢了3-4倍。似乎一旦你运行了第一个预测,它就会加热模型。找不到关于它的任何官方信息


预热我的模型的正确方法是什么?在应用程序启动时使用虚拟数据在异步线程上调用它?

如@Alladinian所述,从iOS 14开始,您可以使用
MLModel.load(contentsOf:…)
函数。
以下是预加载本地
.mlmodel
文件的使用示例:

if let url = Bundle.main.url(forResource: "myModel", withExtension: "mlmodelc") {
    let config = MLModelConfiguration()
    MLModel.load(contentsOf: url, configuration: config) { [weak self] result in
        switch result {
            case .success(let model):
                print("Model loaded and ready.")
                let modelWrapper = MyModelWrapper(model: model)
            case .failure(let error):
                print("Error loading model: \(error)")
        }
    }
}

如果要预加载外部获取的模型,请确保使用
MLModel.compileModel(at:)

编译该模型。在第一次请求时,它似乎是延迟加载模型的(隐式)。iOS 14+包含一个显式异步,加载完成时通过回调通知您,因此,如果您的目标是iOS 14之前的版本,您的解决方案听起来是一个有效的选择。