模型转换概览

您用于 LiteRT 的机器学习 (ML) 模型最初是 使用 TensorFlow 核心库和工具构建和训练的。构建好 你可以将其转换为更小、更简洁的模型, 一种高效的机器学习模型格式,称为 LiteRT 模型。 本部分介绍了如何转换 转换为 LiteRT 模型格式。

转化工作流程

将 TensorFlow 模型转换为 LiteRT 格式可能需要几条路径 具体取决于机器学习模型的内容。作为该流程的第一步 您应评估自己的模型,以确定是否可以直接转换。 此评估决定了模型的内容是否受 标准 LiteRT 运行时环境,基于 TensorFlow 操作, 。如果您的模型使用了受支持集之外的运算, 可以选择重构模型或使用高级转换方法。

下图显示了转换模型的大致步骤。

TFLite 转换工作流

图 1. LiteRT 转换工作流。

以下部分概述了评估和转换模型的过程 与 LiteRT 搭配使用。

输入模型格式

您可以将转换器与以下输入模型格式搭配使用:

您可以将 Keras 和具体的函数模型保存为 DDA 并按照推荐的路径完成转化

如果您有 Jax 模型,则可以使用 TFLiteConverter.experimental_from_jax API 将其转换为 LiteRT 格式。请注意,此 API 受 以便在实验模式下更改

转化评估

在尝试转换模型之前,评估模型是非常重要的一步。 在评估 您想要确定模型的内容是否与 LiteRT 格式。您还应该确定自己的模型是否适合 在移动设备和边缘设备上使用时,从模型使用的数据大小来看, 其硬件处理要求、模型的总体大小和 复杂性。

对于许多模型而言,转换器应该开箱即用。不过, LiteRT 内置运营商库支持 TensorFlow 核心运算符,这意味着某些模型可能需要额外的 然后再转换为 LiteRT。 此外,LiteRT 支持的某些操作具有 出于性能方面的原因限制使用要求。请参阅 运算符兼容性指南 以确定您的模型是否需要重构以进行转换。

模型转换

LiteRT 转换器接受 TensorFlow 模型并生成 LiteRT 模型(经过优化的 FlatBuffer 格式由 .tflite 文件扩展名)。您可以加载 或者直接转换您在代码中创建的模型。

转换器接受 3 个用于自定义转换的主要标志(或选项) :

  1. 利用兼容性标记,您可以指定 转换是否应允许自定义运算符。
  2. 借助优化标记,您可以: 指定要应用的优化类型 。最常用的优化技术是 训练后量化
  3. 元数据标志可让您向转换后的模型添加元数据 让您可以在部署容器时更轻松地创建平台专用封装容器代码 模型。

您可以使用 Python API命令行工具。请参阅 转换 TF 模型分步指南 了解如何在模型上运行转换器。

通常,您需要将模型转换为标准 LiteRT 运行时环境Google Play 服务运行时环境 。一些高级用例需要使用 自定义模型运行时环境,这需要在 转化过程请参阅 Android 的高级运行时环境部分 概览,获取更多指导。

高级转换

如果您遇到错误 在模型上运行转换器时,很有可能有一个 运营商兼容性问题。并非所有 TensorFlow 操作 由 TensorFlow 提供支持的 精简版。您可以通过重构模型或使用 高级转换选项,可用于创建经过修改的 LiteRT 格式模型以及该模型的自定义运行时环境。

后续步骤