【发布时间】:2018-01-02 21:26:00
【问题描述】:
我正在使用 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 生成的源代码)
旁边有一个小箭头,可让您访问课程。
有什么想法吗?
【问题讨论】:
-
我遇到了同样的问题。由于某种原因,拖放目前在 Xcode 中不起作用。当我尝试通过右键单击并选择“将文件添加到项目”来添加模型时,它生成了正确的接口。
-
@GudlaSrinivas 在这里遇到了同样的问题并用您的提示解决了,请考虑回答问题以将其保留在这里。
-
一旦我决定将一些 obj-c 文件添加到我的项目中,就会弹出这个错误。你做过类似的事情吗?
-
我有这个项目的原始版本和扩展版本。在扩展版本中,我将一些 Obj-C 文件添加到我的项目中。当我点击原始项目的 inceptionv3 时,它显示:“自动生成的 Swift 模型类”。在我添加额外文件的扩展版本中,它更改为:自动生成的 Objective-C 模型类。如果您有后者,则需要将 inceptionv3.h 添加到您的网桥头文件中。你的模型类读作什么?
标签: swift machine-learning image-recognition