- 32 位浮点精度
- 16 位浮点精度
- uint8/int8 精度(量化模型)
Python API 提供更大的灵活性,可根据您的需求对模型进行转换、优化和量化。
使用 Python API 转换模型
下表列出了 TensorFlow 提供的将 TensorFlow SavedModel 或 Keras 模型转换为 LiteRT 的 Python API: 用于转换模型的 TensorFlow Python API使用 Python API 转换 TensorFlow SavedModel
以下示例将 SavedModel 格式的 TensorFlow 模型转换为 LiteRT:转换后的 LiteRT 模型未经过量化,其数据为 32 位浮点精度。
使用 Python API 转换 Keras 模型
以下示例将 Keras 模型转换为 LiteRT:转换后的 LiteRT 模型未经过量化,其数据为 32 位浮点精度。
量化模型
使用 Python API 将模型转换为 LiteRT 格式后,可以对其进行量化。量化通过将高精度数值(如 32 位浮点数)转换为低精度格式(如 8 位整数)来减小模型的体积和计算需求。 神经网络模型中的量化包含以下步骤:- 量化权重和偏置 — 它们已经是训练好的模型的一部分,无需额外输入数据即可量化。这是一个静态步骤。
- 量化激活层 — 激活层输出的范围取决于前向传播期间的输入数据。需要一组样本输入(称为校准数据集或代表性数据集)来确定最小和最大范围。
使用动态范围量化对模型进行量化
在动态范围量化中,权重和偏置从浮点精度静态量化为 8 位整数精度。激活层范围保持为 32 位浮点精度。 为了降低推理期间的延迟,动态范围算子会:- 根据激活值的范围将其量化为 8 位整数精度。
- 使用 8 位权重和激活值执行计算。
此步骤仅量化权重,不需要额外的校准数据。
使用全整数量化对模型进行量化
在全整数量化中,使用代表性数据集对模型中的激活层进行量化。这会生成更适合定点整数硬件(例如 Qualcomm 开发套件上的 Hexagon 张量处理器)的模型。 以下脚本将 TensorFlow 模型转换并量化为全整数量化的 LiteRT 模型:转换器中的
supported_ops 将 target_spec 设置为 tf.lite.OpsSet.TFLITE_BUILTINS_INT8。使用 tflite_convert 命令转换模型
您可以使用 TensorFlow pip 包中包含的 tflite_convert CLI 工具,通过 TensorFlow v2.x 及更高版本进行离线转换。
tflite_convert 命令仅适用于基本转换。对于训练后整数量化,请使用 Python API。tflite_convert 命令需要 --output_file 标志以及 --saved_model_dir 或 --keras_model_file 之一。运行 tflite_convert --help 可查看完整的选项列表。

