CoreML 模型预测不同于训练

Posted

技术标签:

【中文标题】CoreML 模型预测不同于训练【英文标题】:CoreML model predictions differ from training 【发布时间】:2019-04-14 05:50:33 【问题描述】:

我对 Core ML 还很陌生,但到目前为止,我玩得很开心。我目前正在学习如何通过在操场上创建模型并验证其结果来训练模型进行面部识别。我保存 .mlmodel 并在我的应用中实现它。

我的问题是,当我在操场上测试它时,它似乎具有非常高的准确度,但是当我在我的应用环境中使用相同的图片实现相同的模型时,我会得到完全不同的结果,而且几乎无法使用。

这是我从调试控制台获取的一些代码。

[<VNClassificationObservation: 0x282deff00> BFB8D19B-40AE-45F9-B979-19C11A919DBE, revision 1, 0.778162 "Others", <VNClassificationObservation: 0x282dede60> 9E9B2AC8-3969-4086-B3B0-6ED6BEDFFE71, revision 1, 0.221838 "Me"]

这里它错误地将我的图像分类为其他人,即使它在测试期间正确地将同一图像分类在操场上。看起来应用程序本身运行良好,只是模型突然关闭了。

我在这里错过了什么?

谢谢

【问题讨论】:

【参考方案1】:

通常,当您在 Playground 和应用中以不同的方式加载图像时,就会发生这种情况。我要做的是确保您使用的图像在两种情况下都完全相同。不仅是图像内容,还有在将它们提供给模型之前它们是如何加载的。

【讨论】:

以上是关于CoreML 模型预测不同于训练的主要内容,如果未能解决你的问题,请参考以下文章

CoreML MLModel 预测进度

将pytorch模型转为coreml后,预测结果差很多

从 pytorch 模型转换而来的 coreML 模型给出了错误的预测概率

图像识别的 CoreML 模型预测仅适用于 iPhone 11 和 12 模型

如何使用在 Swift 中返回 MultiArray(Double) 的模型进行预测

快速从 .npy 转换为 MLMultiArray 以进行 CoreML 预测