首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Keras和CoreML预测的结果是非常不同的。

Keras和CoreML预测的结果是非常不同的。
EN

Stack Overflow用户
提问于 2018-05-24 14:44:40
回答 1查看 439关注 0票数 1

我使用Keras进行对象检测,并将模型转换为用于移动部署的CoreML。

在python方面,预测方法在相同的图像上运行。预处理(平均去除)是在python端对keras进行的,而coreML ( red_bias,green_bias等)则由coreML处理。

预测输出是相同的,直到小数点第一位,但其余的小数位都是不同的。

我与numpy.testing.assert_array_almost_equal检查,得到4-10%的差异在输出阵列.

输出数组的大小为(1,10000,45)。

结果是不同的预测和目标检测输出。

对为什么会发生这种事有什么见解吗?

我怎样才能找到问题的根源并加以解决?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-24 21:11:55

假设您正确地完成了所有操作,并且模型在GPU上运行,那么这些类型的精确错误在整个过程中是非常重要的。GPU使用16位浮点数,它的精度只有3小数点,如果你的模型有很多层,那么这种精度误差就会累积起来。

此外,对于某些类型的模型,最后一层将有较大的权重和较大的(负)偏差(以迫使预测非常自信),这将放大精度误差。

尝试在CPU上而不是GPU上运行Core模型(参见MLPredictionOptions)。如果现在的精度更高,那么它确实是16位浮标。

一般来说,这个问题没什么好担心的,因为(卷积的)神经网络对于这些精确性的问题是相当健壮的,而且您可能仍然可以从模型中得到适当的结果。

我的经验法则是,小于5e-2的误差是可以的,如果只有少数几个大于5e-2的误差,那么模型就很好。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50512211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档