当前位置: 首页 > news >正文

TensorFlow Lite 示例应用

在这里插入图片描述

TensorFlow Lite

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

主要特性

通过解决以下 5 项约束条件,针对设备端机器学习进行了优化:延时(数据无需往返服务器)、隐私(没有任何个人数据离开设备)、连接性(无需连接互联网)、大小(缩减了模型和二进制文件的大小)和功耗(高效推断,且无需网络连接)。
支持多种平台,涵盖 Android 和 iOS 设备、嵌入式 Linux 和微控制器。
支持多种语言,包括 Java、Swift、Objective-C、C++ 和 Python。
高性能,支持硬件加速和模型优化。
提供多种平台上的常见机器学习任务的端到端示例,例如图像分类、对象检测、姿势估计、问题回答、文本分类等。
要点:当所有受支持的运算符(超过 125 个)均建立关联后,TensorFlow Lite 二进制文件的大小约为 1 MB(针对 32 位 ARM build);如果仅使用支持常见图像分类模型(InceptionV3 和 MobileNet)所需的运算符,TensorFlow Lite 二进制文件的大小不到 300 KB。
开发工作流程
以下指南介绍了该工作流程的每个步骤,并提供了进一步说明的链接:

注意:若要让性能、模型大小和准确率达到理想的平衡状态,请参阅性能最佳做法指南。

1. 创建 TensorFlow Lite 模型

TensorFlow Lite 模型以名为 FlatBuffer 的专用高效可移植格式(由“.tflite”文件扩展名标识)表示。与 TensorFlow 的协议缓冲区模型格式相比,这种格式具有多种优势,例如可缩减大小(代码占用的空间较小)以及提高推断速度(可直接访问数据,无需执行额外的解析/解压缩步骤),这样一来,TensorFlow Lite 即可在计算和内存资源有限的设备上高效地运行。

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。在多种平台和语言(如 Java、Swift、C++、Objective-C 和 Python)中均受支持。

包含元数据的模型:您可以使用 TensorFlow Lite Task 库以利用开箱即用的 API,也可以使用 TensorFlow Lite Support 库构建自定义的推断流水线。在 Android 设备上,用户可以使用 Android Studio ML Model Binding 或 TensorFlow Lite Code Generator 自动生成代码封装容器。仅在 Java (Android) 中受支持,我们正在努力使其在 Swift (iOS) 和 C++ 中受支持。

在 Android 和 iOS 设备上,您可以使用硬件加速来提升性能。在任何一个平台上,您都可以使用 GPU 代理:在 Android 上,您可以使用 NNAPI 代理(适用于新款设备)或 Hexagon 代理(适用于旧款设备);在 iOS 上,您可以使用 Core ML 代理。如需添加对新的硬件加速器的支持,您可以定义自己的代理。

参考连接:https://www.tensorflow.org/lite/examples

https://tensorflow.google.cn/lite/guide

https://www.cnblogs.com/vitoyeah/p/10273299.html

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 写在英格兰被葡萄牙8:7淘汰之后
  • 优质的深度学习NLP学习资料[(第一部分:斯坦福-2022 年课程)
  • 物流实操课题调查
  • 优质的深度学习NLP学习资料[(第二部分【语言模型学习资源】)
  • 上帝,原谅我吧.
  • 优质的深度学习NLP学习资料[(第三部分【问答学习资源】)
  • SCJP认证考试复习笔记系列之一(收藏)
  • 优质的深度学习NLP学习资料[(第四部分【AI聊天机器人学习资源】)
  • 图像的处理(一)----灰度图像像素颜色亮度处理
  • 重要的 NLP 任务总结与20本最佳深度学习书籍[附带源码]
  • CSDNBlog使用方法(非官方,持续更新)(已更新二次)
  • NLP模型笔记2022-01:浅谈语言模型
  • 发文庆祝,俺上榜了!
  • NLP模型笔记2022-02:关于规则与语料对语言模型的理解
  • NLP模型笔记2022-03:简单理解nlp句法分析
  • 4. 路由到控制器 - Laravel从零开始教程
  • extjs4学习之配置
  • Facebook AccountKit 接入的坑点
  • golang中接口赋值与方法集
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • Shadow DOM 内部构造及如何构建独立组件
  • SQLServer之创建数据库快照
  • SQLServer之索引简介
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 翻译--Thinking in React
  • 免费小说阅读小程序
  • ​Redis 实现计数器和限速器的
  • "无招胜有招"nbsp;史上最全的互…
  • #QT(智能家居界面-界面切换)
  • (el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程
  • (二)十分简易快速 自己训练样本 opencv级联lbp分类器 车牌识别
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (四)React组件、useState、组件样式
  • (四)stm32之通信协议
  • (一)springboot2.7.6集成activit5.23.0之集成引擎
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • *** 2003
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • *Django中的Ajax 纯js的书写样式1
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .Net OpenCVSharp生成灰度图和二值图
  • .NET 中 GetProcess 相关方法的性能
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .NetCore+vue3上传图片 Multipart body length limit 16384 exceeded.
  • .net和php怎么连接,php和apache之间如何连接
  • .pop ----remove 删除
  • /bin/bash^M: bad interpreter: No such file ordirectory
  • /proc/stat文件详解(翻译)
  • @synthesize和@dynamic分别有什么作用?
  • [ HTML + CSS + Javascript ] 复盘尝试制作 2048 小游戏时遇到的问题
  • [ACP云计算]易混淆知识点(考题总结)
  • [Android Pro] listView和GridView的item设置的高度和宽度不起作用
  • [C#]实现GRPC通讯的服务端和客户端实例