0

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

4

1 回答 1

0

事实证明,normalizeBitmap函数ImageUtils.java实际上是对图像的每个像素进行归一化,而我在 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-11-14T12:48:47.507 回答