TensorFlow Lite 转换器

TensorFlow Lite 转换器根据输入的 TensorFlow 模型生成 TensorFlow Lite FlatBuffer 文件 (.tflite)。该转换器支持 SavedModel 目录tf.keras 模型具体函数

TF 2.2 中的新变化

在每夜版和 TF 2.2 稳定版中,改为默认使用新的转换器后端。我们为什么做出这项改变?

  • 可以转换新类型的模型,包括 Mask R-CNN、Mobile BERT 等等
  • 添加对函数控制流的支持(在 TensorFlow 2.x 中默认启用)
  • 跟踪原始 TensorFlow 节点名称和 Python 代码,并在转换期间发生错误时公开这些信息
  • 利用 Google 顶尖的 MLIR 机器学习编译器技术,可以更轻松地进行扩展,以满足功能需求
  • 为输入张量包含未知维度的模型添加基本支持
  • 支持所有现有的转换器功能

如果您遇到任何问题:

  • 请创建一个GitHub 问题,其组件标签为“ TFLiteConverter”。请加入:
    • 运行转换器或代码用到的命令(如果您使用的是 Python API)
    • 转换器调用的输出
    • 转换器的输入模型
    • 如果转换成功,但生成的模型有误,请说明错误情况:
      • 产生错误的结果和/或准确率下降
      • 产生正确的结果,但模型速度比预期慢(由旧转换器生成的模型)
  • 如果您使用了 allow_custom_ops 功能,请参阅 Python API命令行工具文档
  • 通过 tflite_convert 命令行工具设置 experimental_new_converter=false 或通过 Python API 设置 converter.experimental_new_converter=False,切换到旧转换器

设备部署

然后,TensorFlow Lite FlatBuffer 文件将部署到客户端设备(例如移动设备、嵌入式设备),并使用 TensorFlow Lite 解释器在本地运行。此转换流程如下图所示:

TFLite 转换器工作流

转换模型

您应该借助 Python API 来使用 TensorFlow Lite 转换器。通过使用 Python API,您在模型开发流水线中可以更轻松地转换模型,并及早减少兼容性问题。或者,您也可以使用命令行工具,该工具支持基本的模型。