【问题标题】:Android: Converted Tensorflow 2.0 SavedModel to TFLite problem with confidence valueAndroid:将 Tensorflow 2.0 SavedModel 转换为具有置信度值的 TFLite 问题
【发布时间】:2020-05-05 20:30:37
【问题描述】:

您好,在使用此源代码https://gist.github.com/mypapit/e3b26787c95caf840e5c16a79327d443 在 TFHub MobileNet 模块 (SavedModel TF2.0) 上使用迁移学习技术后,我已将 SavedModel 文件转换为 TFLite 文件,我尝试在 Tensorflow for Poet 示例 Android 应用程序上运行它

image 1

生成的 Android 应用似乎能够正确分类我重新训练的类。但是,准确率差很多(简直离谱!),您可以参考截图。

通常,精度应该在 0.000 到 1.000 的范围内。但是使用我转换后的 TFLite 模型,准确度范围从 -400 到 500.00++ 变化很大

仅供参考,我已经修改了 IMAGE_MEAN 和 IMAGE_STD 值 (255f,0f) 和 (127.5f, 127.5f),但无济于事。

有人可以帮我吗?

我用来测试模型的标准 TensorFlow for Poets Android 源代码在这里:https://gist.github.com/mypapit/f7a9b54ee502f02ca72da3f972d25fb9

转换后的TFLite文件在这里:https://1drv.ms/u/s!AmVw1Hsqu0-CguVlKyCNE0W-NzODEg?e=LkjBXl 它的标签图在这里:https://gist.github.com/mypapit/56845dde0c47e21d0e18ec86d25a3ff2

我注意到这仅在我将 tfhub 模块(TF2.0 SavedModel)与 Tensorflow 2.x 一起使用时发生,当我将 tfhub 模块与 Tensorflow 1.14 一起使用时不会发生这种情况

我已经不知所措了,有人可以帮助我吗? :(

【问题讨论】:

    标签: android tensorflow tensorflow2.0 tensorflow-lite


    【解决方案1】:

    似乎您缺少最后一个 softmax 层,它使所有标签输出的总和为 1。

    https://medium.com/data-science-bootcamp/understand-the-softmax-function-in-minutes-f3a59641e86d

    【讨论】:

      【解决方案2】:

      由于我没有您的数据集,因此我使用花数据集尝试了您的模型,并将模型转换为您的代码中的模型,然后使用 Android Studio 部署在 Android 设备上。我使用了 TFLite 应用程序并将资产文件夹替换为 *.tflite 和“labels.txt”。准确性非常好。请检查下面的图片。基于此,我可以肯定地说根本原因不是您的模型或 TFLite 转换。根本原因可能是您的数据(图像预处理)或代码的 Android 部分。请查看代码实现here

      【讨论】:

        猜你喜欢
        • 2023-04-02
        • 2020-03-09
        • 1970-01-01
        • 2020-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-03
        相关资源
        最近更新 更多