【问题标题】:Possible reason for discrepancy in keras h5 model confidence and the same model converted to tflite?keras h5 模型置信度和同一模型转换为 tflite 存在差异的可能原因?
【发布时间】:2020-05-04 10:51:57
【问题描述】:

最近我使用 keras 来转移训练 mobilenet 模型。我重新配置了输出层以预测两个类。

然后我将保存的 .h5 文件转换为 .tflite 文件。根据 TensorFlow 的 ImageClassification 示例在 Android Studio 中运行一次:

https://github.com/tensorflow/examples/tree/master/lite/examples/image_classification

我发现预测的可信度存在细微差异。即

对于这张图片: [推理的图像][1]:https://i.stack.imgur.com/uSmLp.jpg

Tflite 模型置信度: [2.0677739E-5, 0.9999794]

使用 Keras 预测在 .h5 桌面上的推理: [5.100073E-4, 9.994900E-1]

如您所见,他们预测的大体方向相同。然而,我很好奇可能导致这种差异的原因是什么?

如果这不像一般解释那么简单,我将发布所有需要的代码。

桌面版本:

TensorFlow 2.1.0
Keras 2.3.1
Keras-applications 1.0.8
keras-preprocessing 1.1.0

安卓版本:

'org.tensorflow:tensorflow-lite:2.1.0'
'org.tensorflow:tensorflow-lite-gpu:0.0.0-nightly'
'org.tensorflow:tensorflow-lite-support:0.0.0-nightly'

谢谢!

【问题讨论】:

    标签: android tensorflow keras tensorflow-lite


    【解决方案1】:

    Tensorflow Lite 可能与 keras 模型略有不同,因为它们不共享相同的运行时内核。如果 tflite 模型被量化,也会发生这种情况。

    【讨论】:

    • 除非他们在示例中的某处明确转换它,否则我认为它仍然是浮动的。但我会更多地研究代码并阅读有关内核的信息。这是一个好的开始。谢谢。
    猜你喜欢
    • 2021-12-09
    • 2020-09-10
    • 2020-10-10
    • 2019-06-10
    • 1970-01-01
    • 1970-01-01
    • 2019-08-04
    • 2019-09-05
    • 2021-06-11
    相关资源
    最近更新 更多