来自 pb 和 h5 文件的不同预测
Posted
技术标签:
【中文标题】来自 pb 和 h5 文件的不同预测【英文标题】:Different predictions from pb and h5 file 【发布时间】: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
)。我已经更正了,但问题仍然存在。
【问题讨论】:
【参考方案1】:事实证明,ImageUtils.java
的 normalizeBitmap
函数实际上是对图像的每个像素进行归一化,而我在 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);
【讨论】:
以上是关于来自 pb 和 h5 文件的不同预测的主要内容,如果未能解决你的问题,请参考以下文章