我正在使用Inception v3机器学习模型在Swift中构建一个基本的图像识别应用程序。 我拖放了项目文件夹中的Inceptionv3.mlmodel,并确保勾选了“如果需要复制项目”选项。
检测功能内部:
func detect(image: CIImage) {
guard let model = try? VNCoreMLModel(for: Inceptionv3().model) else {
fatalError("Loading CoreML Model Failed!")
}
let request = VNCoreMLRequest(model: model) { (request, error) in
guard let results = request.results as? [VNClassificationObservation] else {
fatalError("Model failed to process")
}
if let firstResult = results.first {
self.navigationItem.title = firstResult.identifier
}
}
我收到以下消息:
使用未解析的标识符'Inceptionv3'
当我点击项目浏览器上的Inceptionv3.mlmodel文件时,我收到此消息:
界面生成仅适用于有效目标
但我知道它应该是这样的:
Inceptionv3(Swift生成源)
旁边有一个小箭头,可让您访问该课程。
有什么想法吗?
答案 0 :(得分:10)
答案 1 :(得分:2)
似乎有某种错误。这可能会有所帮助,删除文件引用并尝试重新添加它。
这对我有用。干杯
答案 2 :(得分:2)
而不是拖放,右键单击项目,然后单击"将文件添加到项目"。然后添加模型文件。这对我有用。
答案 3 :(得分:2)
我遇到了同样的问题。我通过在桥接头中添加inceptionv3来解决。
答案 4 :(得分:0)
问题是在导入模型文件之前不能存在代码行。
删除模型文件,在询问时删除引用。现在添加模型库文件。回到注释的代码行,直接键入相同的代码行,并允许xcode预测你想要使用' Incepetionv3'模型文件。错误现在会消失。
当存在对文件的引用时,Xcode不喜欢剪切和粘贴代码行,但更重要的是,在写入代码行之前文件必须存在。