最近,我使用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
版本android:
'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'
谢谢!
Tensorflow Lite与keras模型可能略有不同,因为它们不共享相同的运行时内核。如果tflite模型被量化,也会发生这种情况。