我一直在使用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]
是这样吗?那么... 整数量化 和 量化意识训练,如何实现它们?
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。
你可能已经知道,有几个级别的量化可以用来优化大小和性能。以下指南涵盖了全整数量化和其他技术(float量化、float16量化等)。
https:/www.tensorflow.orgliteperformancemodel_optimization
以下是关于质检总局准则的最佳资源,请关注。
https:/www.tensorflow.orgmodel_optimizationguidequantizationtraining