在 iOS 12.4 上使用 CoreML Word Tagger

Posted

技术标签:

【中文标题】在 iOS 12.4 上使用 CoreML Word Tagger【英文标题】:Using CoreML Word Tagger on iOS 12.4 【发布时间】:2020-05-31 22:26:30 【问题描述】:

我使用迁移学习和动态嵌入训练了一个 Core ML 文本分类器。效果很好,但是当我尝试在运行 ios 12.4 的设备上进行测试时,它无法预测并给了我错误:

Error Domain=com.apple.CoreML Code=0 "Prediction failed" UserInfo=NSLocalizedDescription=Prediction failed

我在模拟器上运行时也遇到此错误。我确保该模型只能在运行 iOS 12+ 的设备上使用。 iOS 13 不支持此型号吗?我看到这些新功能是在这个 WWDC 上发布的,但我希望/假设它们是向后兼容的。我弄错了吗?如果此模型无法在 iOS 12 设备上运行,是否有任何方法可以将模型导出。最后,我是否可以在任何地方找到每个 iOS 支持的型号列表。

非常感谢!

【问题讨论】:

【参考方案1】:

Core ML 3 引入的新功能无法在旧设备上运行,只能在 iOS 13 及更高版本上运行。

但是,如果您的模型具有此类功能,我会在加载模型时收到错误消息。调试输出窗格是否显示任何其他消息?

【讨论】:

感谢您的回复!我检查了是否可用(iOS 12)并消除了所有警告。除此之外没有其他错误或警告。我使用 Create ML 应用程序创建了模型并将其添加到我的项目中。在 iOS 13 上运行良好。你知道是否有一个列表,列出了哪些文本分类器在 iOS 12 和 13 上可用。我在任何地方都找不到。 是的,我的书中有这样一个列表(个人资料中的链接)。 ;-) 自 Core ML 2 (iOS 12) 起支持 TextClassifier 和 WordTagger,但 Gazetteer 和 WordEmbedding 在 Core ML 3 (iOS 13) 中是新的。我认为没有其他文本模型(当然,你也可以在神经网络中处理文本)。 太棒了。我去看看书。如果 iOS 12 支持 TextClassifier,为什么我会遇到这个问题?是因为我使用的是动态嵌入吗?【参考方案2】:

刚刚在 10 分钟时从 WWDC 2019 video 中找到了答案。用于文本分类的迁移学习是 iOS 13 的新功能,为了节省空间,在 iOS 13 设备上部署了预训练模型。当您使用迁移学习训练模型时,此模型会修改设备上的预训练模型。这就是为什么在 iOS 12 上使用带有迁移学习的 TextClassifier 不起作用的原因

【讨论】:

以上是关于在 iOS 12.4 上使用 CoreML Word Tagger的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Xcode 12.4 上运行 iOS 模拟器 10.3.1?

我们如何在 iOS 11 中使用 CoreML 框架进行手写检测

如何在模拟器 iOS 12.4 中使用暗模式?

iOS 14.5 中的 CoreML 内存泄漏

如何将使用 Mask Rcnn 在自定义对象检测上创建蒙版图像的 Keras 模型转换为 CoreML 模型以在 iOS 应用程序中使用?

ionic3 在ios12.2 12.3 12.4上页面无法滚动