在 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 框架进行手写检测
如何将使用 Mask Rcnn 在自定义对象检测上创建蒙版图像的 Keras 模型转换为 CoreML 模型以在 iOS 应用程序中使用?