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之前的版本,您的解决方案听起来是一个有效的选择。