【TensorFlow 精简版】TensorFlow Lite

目录

[一 TensorFlow Lite简介](#一 TensorFlow Lite简介)

[二 开发](#二 开发)

[三 开始使用](#三 开始使用)


一 TensorFlow Lite简介

TensorFlow Lite 是一组工具,可帮助开发者在移动设备、嵌入式设备和 loT 设备上运行模型,以便实现设备端机器学习。

  • 针对设备端的机器学习进行的优化:

① 延时(数据无需往返服务器);

② 隐私(没有任何个人数据离开设备);

③ 连接性(无需连接互联网);

④ 大小(缩减了模型和二进制文件的大小);

⑤ 功耗(高效推断,且无需网络连接)。

  • 支持多种平台,涵盖Android 和 IOS设备、嵌入式Linux 和微控制器。
  • 支持多种语言,包括 Java、Swift、Objective-C、C++ 和 Python。
  • 高性能,支持硬件的加速和优化模型。
  • 提供多种平台上的常见机器学习任务的端到端范例(图像分类、目标检测、姿势估计、问题回答、文本分类等)

二 开发

TensorFlow Lite 可在计算和内存资源有限的设备上高效地运行,原因是可缩减大小(代码占用的空间较小)以及提高推断的速度(可直接访问数据,无需执行额外的解析/解压缩步骤)等。

1 创建TensorFlow Lite模型

可以通过以下的方式生成 TensorFlow Lite 模型:

① 使用现有的 TensorFlow Lite 模型

模型可能包含元数据,也可能不含元数据。

++TensorFlow Lite 元数据为模型描述提供了标准++ 。++元数据是与模型功能及其输入/输出信息有关的重要信息来源++。具有元数据格式的模型如下图所示:

② 创建 TensorFlow Lite 模型

使用 TensorFlow Lite Model Maker,利用自定义数据集创建模型。

++默认情况下,所有模型都包含元数据++。

③ 将 TensorFlow 模型转换为 TensorFlow Lite 模型

可以使用 TensorFlow Lite Converter 将 TensorFlow 模型转换为 TensorFlow Lite 模型。

在转换的过程中,还可以应用量化等优化措施,以缩减模型的大小和缩短延时,并最大限度降低或避免准确率的损失。++默认情况下,所有模型都不含元数据++ 。

2 推理(推断)

TensorFlow Lite 模型在设备上的执行,即预测的过程。

可以通过以下方式运行推断,具体取决于模型类型:

① 不含元数据的模型

使用 TensorFlow Lite Interpreter API即可。

在多种平台和语言中均受支持。

② 包含元数据的模型

使用 TensorFlow Lite Task 库以利用开箱即用的 API,也可以使用 TensorFlow Lite Support 库构建自定义的推断流水线。

三 开始使用

根据目标设备的不同,可以参考不同的指南。

① 使用 Python 快速入门:基于 Linux 的设备

如果需要使用Python执行TensorFlow Lite模型,可以++仅安装TensorFlow Lite解释器++(将这种简化的Python软件包称为tflite_runtime),无需安装所有TensorFlow软件包。如果只想执行.tflite模型并且避免因使用大型TensorFlow库而浪费磁盘空间的时候,小型软件包(tflite_runtime 软件包)是首选。

如果是需要访问其他 Python API(例如 TensorFlow Lite Converter)的时候,则必须安装++完整的 TensorFlow 软件包++。

tflite_runtime 软件包是整个tensorflow软件包的小部分,并且包括使用 TensorFlow Lite运行推断所需的最少代码(主要是 Interpreter Python类)。

② 安装tflite-runtime

bash 复制代码
python3 -m pip install tflite-runtime

③ 使用tflite-runtime进行推理

python 复制代码
import tensorflow as tf

interpreter = tf.lite.Interpreter(model_path=args.model_file)

或者

bash 复制代码
import tflite_runtime.interpreter as tflite

interpreter = tflite.Interpreter(model_path=args.model_file)

模型转换成tflie可参考:模型转换

  • 完整的推理代码
python 复制代码
import numpy as np
import tensorflow as tf
# Load the TFLite model and allocate tensors.
interpreter = tf.lite.Interpreter(model_path="ResNet50_fp32.tflite")
interpreter.allocate_tensors()
# Get input and output tensors.
input_details = interpreter.get_input_details()
output_details = interpreter.get_output_details()
# Test the model on random input data.
input_shape = input_details[0]['shape']
input_data = np.array(np.random.random_sample(input_shape), dtype=np.float32)
interpreter.set_tensor(input_details[0]['index'], input_data)
interpreter.invoke()
# The function `get_tensor()` returns a copy of the tensor data.
# Use `tensor()` in order to get a pointer to the tensor.
output_data = interpreter.get_tensor(output_details[0]['index'])
print(output_data.shape)
print(output_data[0][0])
print(output_data[0][999])
pass
  • 运行程序的输出
bash 复制代码
INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
(1, 1000)
0.00015664824
0.0007171879
相关推荐
会飞锦鲤3 小时前
工业AI视觉检测项目完整实施方案
人工智能·深度学习·视觉检测·缺陷检测·模型训练·ai项目·工业应用
优秘智能3 小时前
优秘智能增长智脑视角下的AI试点与验收
人工智能·知识管理·企业应用
天诰3 小时前
SA-K-11 检索会消失吗与四个未解问题
java·服务器·人工智能·python·机器学习·ai编程
中烟创新3 小时前
中烟创新×某电力公司 | AI大模型重构电力合规反事故演习
人工智能·重构
benchmark_cc4 小时前
用 QuantDash 读取美股行情:AAPL.US 的运行前检查、排错顺序与数据校验清单
python·数据分析·pandas·量化交易·股票数据·quantdash
陈嘿萌4 小时前
TIP 2026 | 不再混成一张! RealFusion从模态不变性重想图像融合
图像处理·人工智能·深度学习·计算机视觉·学术研究与理论基础
正在走向自律5 小时前
AI Agent 落地这一年:从“能跑起来”到“敢放出去”
大数据·人工智能·ai agent·智能体·mcp·a2a
不惑_5 小时前
理解启元,从论文开始,RT-2 55B 只有 1~3Hz,OpenVLA 7B 反而高 16.5%——三代 VLA 论文解读,动作表示才是分水岭
人工智能·论文解读
IT_陈寒5 小时前
Redis内存暴涨,没想到是AOF重写捣的鬼
前端·人工智能·后端
楚山之石5 小时前
【JCO】mpMRI 先行替代 TURBT 初始分期:BladderPath 随机试验让 MIBC 患者提前 45 天得到正确治疗
人工智能·学习·mri·医学影像