我正在尝试使用TensorFlow 2.0.0中的TFLiteConverter执行训练后的整数量化,如post-training integer quantization教程中所述。不幸的是,我的输入和输出仍然在float32中:
converter = tf.lite.TFLiteConverter.from_keras_model(model)
converter.representative_dataset = representative_data_gen
converter.target_spec.supported_ops = [tf.lite.OpsSet.TFLITE_BUILTINS_INT8]
converter.inference_input_type = tf.uint8
converter.inference_output_type = tf.uint8
tflite_model_quant = converter.convert()
quantized_model = tf.lite.Interpreter("mnist_model_quant.tflite")
quantized_model.get_input_details()
输出:
[{'dtype': numpy.float32,
'index': 8,
'name': 'flatten_1_input',
'quantization': (0.0, 0),
'shape': array([ 1, 28, 28], dtype=int32)}]
在tf 2.0.0之前,使用tf 1.15.0时,我可以获得完整的int8量化模型。如何使用TF 2.0.0实现此目的?
测试实验室:https://colab.research.google.com/drive/17uoSGPQLhAqAfrIGyRm8Zkr2E8ig3-X0