【发布时间】:2020-10-10 21:07:05
【问题描述】:
如何正确地将 Lenet 模型(输入 32x32、5 层、10 个类)转换为 Tensorflow Lite?我使用了这行代码,但它让我对 android like this image 的信心非常糟糕。置信度都在 0.1 或 10% 左右。
这是我使用的代码
model = tf.keras.models.load_model('model.h5')
converter = tf.lite.TFLiteConverter.from_keras_model(model)
converter.post_training_quantize = True
tflite_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_model)
上面的 .h5 文件可以以良好的置信度和准确度预测图像,like this image。或者我应该问,Tensorflow Lite 不支持自定义模型(Lenet)吗?为什么 tflite 文件比 .h5 差这么多?
【问题讨论】:
-
你为什么使用 post_training_quantize?您是说您使用 32x32 图像。你的手机处理这么小的图片有那么难吗?在您的手机中处理一张图像需要多长时间?
-
@Farmaker 实际上,如果我删除量化并正常转换它,它没有区别,这就是为什么我想知道 tensorflow lite 是否不支持自定义 lenet 模型。而且,处理一张图像只需不到 1 秒。
-
为什么要除以 3 (/ 3 / 255f) ?这通常用于灰度图像。我看到你的图片是彩色的。
-
所以根据您的主要问题,我认为我们已经完成了。转换模型(无论是否量化)都没有问题。接下来我们必须查看要调试的代码。有github链接吗?
-
感谢您的链接。是否可以上传 .h5 文件和一些图片进行检查?
标签: python tensorflow keras tensorflow-lite