gpt4 book ai didi

python - tensorflow 模型和转换后的 tflite 之间的精度下降

转载 作者:行者123 更新时间:2023-12-04 03:42:27 30 4
gpt4 key购买 nike

我遇到了一个问题,我将我的 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')
])

最佳答案

我遇到了同样的问题。我用训练后量化解决了它。所以我在我训练的模型上应用了量化,并重新训练它。它显着降低了准确性,在 keras 和 TFLite 上的差异不超过大约 2-10%。

似乎在将keras模型转换为TFLite时,也应用了一种量化并将浮点参数转换为整数,从而导致精度下降。通过首先量化模型,我们用整数训练了模型。我认为这或多或少是发生了什么。如果我错了请纠正我

引用文献 https://www.tensorflow.org/model_optimization/guide/quantization/training https://www.tensorflow.org/lite/performance/model_optimization

关于python - tensorflow 模型和转换后的 tflite 之间的精度下降,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65731362/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com