预热 CoreML MLModel

Pre-heat CoreML MLModel

我在 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:) 编译的。