我有一个 tflite 文件,我想对其进行量化。
如何将TFLite模型转换为量化TFLite模型?
请注意,您需要源模型来对其进行量化。由于 tflite 模型格式的限制,无法对其进行量化。
您的源模型可以是 TF saving_model、Keras 模型实例或 ONNX。您可以找到所有支持的源模型格式HERE https://www.tensorflow.org/api_docs/python/tf/lite/TFLiteConverter, e.g. converter.from_keras_model(nn_path)
。对于 ONNX 转换,请检查这个工具 https://pypi.org/project/onnx2tf/.
有多种量化方法。最简单的方法是仅对权重执行训练后量化,其中 TF 引擎应用最小-最大量化来获取量化参数,例如比例和零点。
我建议检查 TFLite 网站上的文档:https://www.tensorflow.org/lite/performance/post_training_quantization https://www.tensorflow.org/lite/performance/post_training_quantization
直接代码是:
import tensorflow as tf
converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
converter.optimizations = [tf.lite.Optimize.DEFAULT] # applies PTQ on weights, if possible
tflite_quant_model = converter.convert()
一些额外的事情:您还可以查看量化感知训练(link https://www.tensorflow.org/model_optimization/guide/quantization/training)和混合精确训练(link https://www.tensorflow.org/guide/mixed_precision)在TF中直接得到量化权重,通过简单的TFLite转换就可以得到量化模型。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)