Skip to main content
本页介绍如何将 TensorFlow 模型转换为量化的 TFLite 格式。转换完成后,您可以使用 LiteRT 在 NPU 上运行生成的 .tflite 文件。
想要运行已经转换好的模型? 请跳过本页,直接前往运行 LiteRT / TFLite 模型。只有当您拥有尚未量化的 TensorFlow 模型时才需要阅读本页。
TensorFlow 是 Google 开发的开源机器学习框架,提供构建、训练和部署神经网络的工具。要在 Dragonwing 开发板的 NPU 上运行 TensorFlow 模型,您需要将模型转换为量化的 TFLite 模型。然后,您可以使用 LiteRT 以完整的硬件加速运行该模型。

量化并转换模型

TensorFlow 模型的权重和激活值使用 32 位浮点数。而开发板上的 NPU 仅支持 8 位整数,因此必须对 TensorFlow 模型进行量化 — 将浮点值转换为定点值。这会使模型更小、运行更快(并能够在 NPU 上运行),但会对精度产生一定影响。 量化模型最简单的方法是使用训练后量化(post-training quantization)。您使用一个已经训练好的模型,然后借助代表性数据集对权重和激活值进行量化。这意味着训练循环不受任何影响。您也可以选择使用 TensorFlow 内置的量化感知训练来降低量化误差(但这需要修改训练循环)。 我们通过量化一个 Keras 模型来演示。在开发板上打开终端,或通过 SSH 连接到开发板,然后:
  1. 创建一个新的 venv 并安装一些基础软件包:
  2. 下载 .keras 格式的演示模型以及测试集。
  3. 创建一个新文件 quantize.py,并添加:
  4. 运行示例:
太棒了!您现在拥有了 cats_i8.tflite,它在 NPU 上的运行速度快约 4 倍(但会有一定的精度损失)。有关 LiteRT 运行时的更多详细信息(包括 C++ 示例),请参见在 NPU 上运行 LiteRT/TFLite 模型