【问题标题】:Different predictions from pb and h5 file来自 pb 和 h5 文件的不同预测
【发布时间】:2019-11-13 19:44:01
【问题描述】:

我已经按照medium post 的实现将我的 Keras 模型部署到 Android。我使用了具有 9 个节点的密集层以及输出层中的 softmax 激活,而不是帖子中使用的全局平均池化。我的模型的h5文件在python中预测准确,但是当我在Android中使用pb文件时,它的预测是错误的。此外,预测后的浮点值在不同的Android设备上也有一些不同。执行有问题吗?文件ConvertToTensorflow.py 的第16 行很可能有一个小错误(应该是keras_model.outputs 而不是keras_model.output)。我已经更正了,但问题仍然存在。

【问题讨论】:

    标签: python android tensorflow keras protobuf-c


    【解决方案1】:

    事实证明,ImageUtils.javanormalizeBitmap 函数实际上是对图像的每个像素进行归一化,而我在 python 中训练我的模型时只是将每个像素值除以 255。于是我改了3行代码:

    output[i * 3] = (float)(((val >> 16) & 0xFF)/255.0);
    output[i * 3 + 1] = (float)(((val >> 8) & 0xFF)/255.0);
    output[i * 3 + 2] = (float)((val  & 0xFF)/255.0);
    

    【讨论】:

      猜你喜欢
      • 2019-10-30
      • 1970-01-01
      • 1970-01-01
      • 2020-04-10
      • 1970-01-01
      • 2016-05-17
      • 1970-01-01
      • 1970-01-01
      • 2012-11-27
      相关资源
      最近更新 更多