在项目中插入 CoreML 模型会导致错误

Posted

技术标签:

【中文标题】在项目中插入 CoreML 模型会导致错误【英文标题】:Inserting CoreML model in project results in errors 【发布时间】:2020-09-04 06:13:00 【问题描述】:

我想在我的 Swift 项目中插入一个 CoreML 模型。但是每当我插入一个模型并构建我​​的项目时,我都会遇到“Swift Compiler Errors”,其中包含为 mlmodel 自动生成的模型类文件。无论我添加到项目中的任何模型,都会出现四个错误

在自动生成的文件中有一行:

try! self.init(contentsOf: type(of:self).urlOfModelInThisBundle)

它抛出错误 - 1. 调用中的参数标签不正确(有'of:',预期'rawValue:') 2. 类型“类型?”的值没有成员 'urlOfModelInThisBundle'

【问题讨论】:

您使用的是哪个版本的 Xcode?​​span> Xcode 11.4.1。事实上,如果我创建一个新的简单项目并加载相同的模型,它可以正常工作。 项目中是否有另一个与模型同名的类? 不。此外,我尝试了多种型号。无论我插入什么模型,都会弹出相同的错误。 【参考方案1】:

解决了。通过禁用类文件的自动生成来解决这个问题。我创建了一个手动 Swift 文件并从生成的文件中粘贴了相同的代码。刚刚将该错误行的语法更改为:

try! self.init(contentsOf: model_className.urlOfModelInThisBundle)

效果很好,现在我可以在我的项目中使用该模型。

但这仍然不能解释为什么首先会弹出错误。

【讨论】:

以上是关于在项目中插入 CoreML 模型会导致错误的主要内容,如果未能解决你的问题,请参考以下文章

CoreML:我可以在一个项目中使用两个机器学习模型(mlmodel 文件)吗? [复制]

tf.keras 模型到 coreml 模型,不支持 BatchNormalization

隐藏 CoreML 模型 (.mlmodel) 文件

错误! coreML 模型对图像的预测是错误的,对视频是正确的

创建 CoreML LRCN 模型

OpenFace CoreML 模型。没有人脸检测