0

我一直在使用 TFLiteConverter 在 TensorFlow 2.x 上学习量化,但是我正在 TensorFlow 1.13 上实现一个项目,我想知道如何在这个版本上做同样的事情。

例如,据我观察,以下命令做同样的事情

# tf 1.x
converter.post_training_quantize = True

# tf 2.x
converter.optimizations = [tf.lite.Optimize.OPTIMIZE_FOR_SIZE]

这样对吗?那么整数量化量化感知训练呢,如何实现呢?

4

1 回答 1

1

AFAIK,以下两个是等价的。

# tf 1.x
converter.post_training_quantize = True

# tf 2.x
converter.optimizations = [tf.lite.Optimize.DEFAULT]

converter.optimizations = [tf.lite.Optimize.OPTIMIZE_FOR_SIZE]用于全整数量化。

请注意,与量化感知训练 (QAT) 相比,训练后量化很简单,但 QAT 提供了更高的模型精度。通常建议使用训练后量化。如果训练后量化的表现不符合你的要求,那就去 QAT。

您可能已经知道,可以进行多个级别的量化来优化大小和性能。以下指南涵盖了完整的整数量化和其他技术(浮点量化、float16 量化等)

https://www.tensorflow.org/lite/performance/model_optimization

这是遵循 QAT 指南的最佳资源。

https://www.tensorflow.org/model_optimization/guide/quantization/training

于 2020-05-10T18:47:09.410 回答