我正在制作一个分类食品图像的应用程序。我用从Kaggle找到的数据集训练了一个模型。当按下分类按钮时,我在控制台中得到了这个错误:
Error Domain=com.apple.vis Code=9 "Could not create Espresso context" UserInfo={NSLocalizedDescription=Could not create Espresso context}因此,我通过谷歌搜索寻找解决方案,并在苹果开发者论坛中发现这是M1 Mac特有的问题。我现在该怎么做?
分类班:
import Foundation
import CoreML
import Vision
import UIKit
class VisionClasifier{
private let model : VNCoreMLModel
private var completion: (String) -> Void = { _ in }
private lazy var request:[VNCoreMLRequest] = {
let request = VNCoreMLRequest(model: model){ request, error in
guard let results = request.results as? [VNClassificationObservation] else{
return
}
if !results.isEmpty{
if let result = results.first{
self.completion(result.identifier)
}
}
}
request.imageCropAndScaleOption = .centerCrop
return [request]
}()
init?(mlModel:MLModel?){
if let m = mlModel{
if let model = try? VNCoreMLModel(for: m){
self.model = model
}else{
return nil
}
}else{
return nil
}
}
func classify(_ image:UIImage, completion:@escaping (String)->Void){
self.completion = completion
DispatchQueue.global().async {
guard let image = image.cgImage else{
return
}
let handler = VNImageRequestHandler(cgImage: image, options: [:])
do{
try handler.perform(self.request)
}catch{
print(error) // -> here is the error
}
}
}
}这是M1 Mac特有的错误吗?
发布于 2022-06-14 21:07:41
是的,它可能是M1特定的错误。
行后:
request.imageCropAndScaleOption = .centerCrop添加
request.usesCPUOnly = truehttps://stackoverflow.com/questions/70346998
复制相似问题