【发布时间】:2021-01-15 06:19:42
【问题描述】:
我遇到了一个问题,我将我的 keras 模型转换为 tensorflow lite 格式,但是一旦我这样做了,转换后的模型的模型精度就会显着下降。该模型是一个相当简单的自然语言处理模型。在转换之前,模型的准确率约为 96%,但一旦转换为 tensorflow lite 格式(没有任何优化),它就会下降到 20% 左右。这是一个可笑的性能下降,所以我想知道这是可能发生的事情还是我在这里做错了什么?我在运行 debian 的 beaglebone SBC 上运行 tflite 模型,并在 python 上运行推理。
我的tflite转换代码:
converter = tf.lite.TFLiteConverter.from_keras_model(model)
tflite_model = converter.convert()
with open('model.tflite', 'wb') as f:
f.write(tflite_model)
我的型号代码:
model = tf.keras.Sequential([
tf.keras.layers.Embedding(vocab_size, 128, input_length=maxlen),
tf.keras.layers.GlobalAveragePooling1D(),
tf.keras.layers.Dense(24, activation='relu'),
tf.keras.layers.Dense(1, activation='sigmoid')
])
【问题讨论】:
-
准确率下降不是转换本身造成的。我会首先检查经过训练的模型是否作为转换器的输入。如果您在训练期间有任何预处理,这种行为也可能是由于错过了预处理造成的。
标签: python tensorflow keras tensorflow-lite