我在我的MLModel上的第一次预测中看到了3x-4倍的慢结果。似乎一旦你运行第一个预测,它就会加热模型。也找不到任何官方信息。
给我的模型预热的正确方法是什么?在应用程序启动时用虚拟数据在异步线程上调用它?
发布于 2021-05-31 15:22:01
正如@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:)编译的。
https://stackoverflow.com/questions/67760542
复制相似问题