TensorFlow Lite 转换器可将 TensorFlow 模型转换为经过优化的 FlatBuffer 格式,供 TensorFlow Lite 解释器使用。
FlatBuffer
FlatBuffer 是一个高效的开源跨平台序列化库。它与协议缓冲区类似,但区别在于,FlatBuffer 省去了在访问数据之前解析/解压为二级表示法的步骤,从而避免了各对象的内存分配。FlatBuffer 的代码占用空间比协议缓冲区要小一个数量级。
从模型训练到设备部署
TensorFlow Lite 转换器会根据 TensorFlow 模型生成 TensorFlow Lite FlatBuffer 文件 (.tflite
)。
该转换器支持以下输入格式:
- SavedModel
- 冻结的
GraphDef
:由 freeze_graph.py 生成的模型。 tf.keras
HDF5 模型。- 通过
tf.Session
获得的任何模型(仅限 Python API)。
然后,TensorFlow Lite FlatBuffer
文件将部署到客户端设备,TensorFlow Lite 解释器会使用压缩的模型进行设备端推断。此转换流程如下图所示:
应用方式
您可以通过以下两种方式之一使用 TensorFlow Lite 转换器: