我刚刚升级到Xcode 10.0,它似乎破坏了CoreML自动生成的网络类代码。构建项目时,我收到错误消息:
reg_net.m:94:50: No visible @interface for 'reg_netInput' declares the selector 'initWith0:'
在类中,自动生成的reg_netInput
初始化程序的形式为initWith_0
,但是在预测函数的主体中,代码调用initWith0
。我试图将初始化程序名称更改为一致,但是无论何时构建,该代码似乎都会再次自动生成并恢复为冲突的名称。
我也尝试删除并重新导入.mlmodel文件,但没有成功。有关如何解决此问题的任何想法?
答案 0 :(得分:0)
尝试通过valid identifier
而不是数字"0"
来更改模型的输入名称。
概述
在Core ML中,功能是模型的单个输入或输出。模型可以具有任意数量的输入要素或输出要素。每个功能都有一个名称和一个值类型,它们在功能的MLFeatureDescription中定义。模型作者使用功能描述来帮助开发人员正确集成他们的模型。每个MLFeatureDescription实例都具有只读属性,这些属性指示功能的名称,其类型以及是否可选。
有关功能示例,请参阅将Core ML模型集成到您的应用中。请注意,三个输入要素分别名为solarPanels,温室和大小,输出要素名为price。所有四个功能的类型均为Double。
MLFeatureDescription可能还包含约束,这些约束指定模型的输入和输出特征的限制。对于每个输入功能,约束条件描述了模型期望您的应用程序获得什么值。对于每个输出功能,约束条件描述了您的应用应从模型中获得什么值。您还可以编写代码来检查这些描述,然后再在应用中使用模型。
主题 检查功能 变量名称:字符串
此功能的名称。