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

支持多平台
支持多种平台,涵盖 Android 和 iOS 设备、嵌入式 Linux 和微控制器。

原理/流程

工作原理或者使用流程就是上面4步,1)与2)创建或者转换一个TensorFlow Lite 模型;3)部署在手机等终端,使用模型进行推理;4)TensorFlow Lite 提供了优化模型大小(size)和性能(performance)的工具,通常对准确性(accuracy)影响甚微。优化模型可能需要稍微复杂的训练(training),转换(conversion)或集成(integration)。机器学习优化是一个不断发展的领域,TensorFlow Lite 的模型优化工具包(Model Optimization Toolkit)随着新技术的发展而不断发展。
创建 TensorFlow Lite 模型
有如下两种方式创建lite模型:
- 创建 TensorFlow Lite 模型:使用 TensorFlow Lite Model Maker,利用您自己的自定义数据集创建模型。默认情况下,所有模型都包含元数据。
- 将 TensorFlow 模型转换为 TensorFlow Lite 模型:使用 TensorFlow Lite Converter 将 TensorFlow 模型转换为 TensorFlow Lite 模型。在转换过程中,您可以应用量化等优化措施,以缩减模型大小和缩短延时,并最大限度降低或完全避免准确率损失。默认情况下,所有模型都不含元数据。
tensorflow lite组件

- TensorFlow Lite 转换器(TensorFlow Lite Converter):是一个将训练好的 TensorFlow 模型转换成 TensorFlow Lite 格式的工具。转换模型减小了模型文件大小,并引入了不影响准确性(accuracy)的优化措施(optimizations)
2. TensorFlow Lite 解释器是一个库,该库会接收模型文件,执行它对输入数据定义的运算,并提供对输出的访问。
该解释器(interpreter)适用于多个平台,提供了一个简单的 API,用于从 Java、Swift、Objective-C、C++ 和 Python 运行 TensorFlow Lite 模型。
以下代码展示了从 Java 调用的解释器:
try (Interpreter interpreter = new Interpreter(tensorflow_lite_model_file)) { interpreter.run(input, output);
3.由于 TensorFlow Lite 内置算子库仅支持有限数量的 TensorFlow 算子,所以并非所有模型都可以转换。大多数 TensorFlow Lite 运算都针对的是浮点(float32)和量化(uint8、int8)推断。
4.Delegates 利用GPU和Digital Signal Processor (DSP)等设备加速器,实现TensorFlow Lite模型的硬件加速。
默认情况下,TensorFlow Lite使用针对ARM Neon指令集优化的CPU内核。
模型优化

- 量化的工作原理是降低用于表示模型参数的数字(默认情况为 32 位浮点数)的精度。这样可以获得较小的模型大小和较快的计算速度。

2.剪枝
剪枝的工作原理是移除模型中对其预测影响很小的参数。剪枝后的模型在磁盘上的大小相同,并且具有相同的运行时延迟,但可以更高效地压缩。这使剪枝成为缩减模型下载大小的实用技术。
3.聚类
聚类的工作原理是将模型中每一层的权重归入预定数量的聚类中,然后共享属于每个单独聚类的权重的质心值。这就减少了模型中唯一权重值的数量,从而降低了其复杂性。
参考
参考:官网TensorFlow Lite | TensorFlow中文官网
相关文章:
tensorflow lite简介-移动设备端机器学习
TensorFlow Lite 是一组工具,可帮助开发者在移动设备、嵌入式设备和 loT 设备上运行模型,以便实现设备端机器学习。 支持多平台 支持多种平台,涵盖 Android 和 iOS 设备、嵌入式 Linux 和微控制器。 原理/流程 工作原理或者使用流程就是上面…...
Node.js常用知识
1、什么是 Node.js 【】Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。浏览器是 js 的前端运行环境,node.js 是 js 的后端运行环境。他们都有 V8 引擎,有各自的内置 API 2、fs 文件系统模块 【】fs 模块是 Node.js 官方提供的、用来操作文件…...
踩坑:maven打包失败的解决方式总结
Maven打包失败原因总结如下: 失败原因1:无法使用spring-boot-maven-plugin插件 使用spring-boot-maven-plugin插件可以创建一个可执行的JAR应用程序,前提是应用程序的parent为spring-boot-starter-parent。 需要添加parent的包spring-boot…...
【C++】位图
文章目录位图概念位图操作位图代码位图应用位图概念 boss直接登场: 给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中❓ 40亿个整数,大概就是16GB。40亿个字节大概就是4GB。 1Byt…...
蓝桥杯-考勤刷卡
蓝桥杯-考勤刷卡1、问题描述2、解题思路3、代码实现1、问题描述 小蓝负责一个公司的考勤系统, 他每天都需要根据员工刷卡的情况来确定 每个员工是否到岗。 当员工刷卡时, 会在后台留下一条记录, 包括刷卡的时间和员工编号, 只 要在一天中员工刷过一次卡, 就认为他到岗了。 现在…...
如何利用站内推广和站外推广提高转化率?
在如今的网络时代,拥有一个好的网站是非常重要的。但是,光有一个好的网站是不够的,为了达到我们的目标,需要不断地提高网站的转化率。而在实现这个目标的过程中,站内推广和站外推广是两个非常关键的因素。 站内推广是…...
Java多线程(三)——线程池及定时器
线程池就是一个可以复用线程的技术。前面三种多线程方法就是在用户发起一个线程请求就创建一个新线程来处理,下次新任务来了又要创建新线程,而创建新线程的开销是很大的,这样会严重影响系统的性能。线程池就相当于预先创建好几个线程…...
Linux命令行安装Oracle19c教程和踩坑经验
安装 下载 从 Oracle官方下载地址 需要的版本,本次安装是在Linux上使用yum安装,因此下载的是RPM。另外,需要说明的是,Oracle加了锁的下载需要登录用户才能安装,而用户是可以免费注册的,这里不做过多说明。 …...
Linux常用命令等
目录 1.Linux常用命令 (1)系统命令 (2)文件操作命令 2.vim编辑器 3.linux系统中,软件安装 (1) rpm 安装,RedHat Package Manager (2)yum 安装 (3)源代码编译安装 1.Linux常用命令 Linux命令是非常多的,对于像嵌入式开发工程师,运维工程师需要掌握的命令是非常多的.对于…...
CEC2014:鱼鹰优化算法(Osprey optimization algorithm,OOA)求解CEC2014(提供MATLAB代码
一、鱼鹰优化算法简介 鱼鹰优化算法(Osprey optimization algorithm,OOA)由Mohammad Dehghani 和 Pavel Trojovsk于2023年提出,其模拟鱼鹰的捕食行为。 鱼鹰是鹰形目、鹗科、鹗属的仅有的一种中型猛禽。雌雄相似。体长51-64厘米…...
MyBatis底层原理【源码运行时序图】
MyBatis初始化流程🛷 以下代码为例🎉 🎇可对应源码阅读 MyBatis初始化流程✨ #mermaid-svg-yoG1e8Dnp3UIAOUW {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-yoG1e8Dnp3UIAOU…...
k8s 系列之 CoreDNS 解读
k8s 系列之 CoreDNS CoreDNS工作原理 kuberntes 中的 pod 基于 service 域名解析后,再负载均衡分发到 service 后端的各个 pod 服务中,如果没有 DNS 解析,则无法查到各个服务对应的 service 服务 在 Kubernetes 中,服务发现有几…...
从测试鸡蛋硬度到跳表的设计
我回忆起六七年前的一道题鸡蛋掉落问题,有幸在leetCode上找到题目了 原题是2枚鸡蛋 leetCode有拓展,k枚鸡蛋 具体的思路是这样的。 以2枚鸡蛋验证100层为例 不能直接二分查找,因为你在50层测试时,如果直接鸡蛋碎了,那…...
3D立体视觉成像原理介绍【一 】
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言什么是基线?基线是如何影响3D图像质量激光三角测量飞行时间结构光相机时间编码结构光前言 本文将介绍3D立体视觉的成像原理,包括【激光三…...
CEC2021:鱼鹰优化算法(Osprey optimization algorithm,OOA)求解CEC2021(提供MATLAB代码
一、鱼鹰优化算法简介 鱼鹰优化算法(Osprey optimization algorithm,OOA)由Mohammad Dehghani 和 Pavel Trojovsk于2023年提出,其模拟鱼鹰的捕食行为。 鱼鹰是鹰形目、鹗科、鹗属的仅有的一种中型猛禽。雌雄相似。体长51-64厘米…...
0301_对应的南京比特物联网
0301_对应的南京比特物联网目录概述需求:设计思路实现思路分析1.流程拓展实现性能参数测试:参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better …...
钡铼技术BL302 ARM工控机QT图形化界面开发的实践
QT是一种跨平台的应用程序框架,用于开发图形用户界面(GUI)、网络应用程序和嵌入式应用程序。QT提供了丰富的GUI组件和工具,使开发人员能够轻松地创建专业级别的应用程序。QT使用C编写,支持多种操作系统,包括Windows、Linux、macOS…...
Python try except异常处理详解(入门必读)
Python 中,用try except语句块捕获并处理异常,其基本语法结构如下所示: try:可能产生异常的代码块 except [ (Error1, Error2, ... ) [as e] ]:处理异常的代码块1 except [ (Error3, Error4, ... ) [as e] ]:处理异常的代码块2 except [Exc…...
信息系统基本知识(三)软件工程
1.4 软件工程 定义:将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程即上述方法的研究 软件工程由方法、工具和过程三个部分组成 1.4.1 需求分析 软件需求是指用户对新系统在功能、行为、性能、设计约束等方面的期望。 需求层次 业务…...
Linux下软件部署安装管理----rpmbuild打包rpm包部署安装
来源:微信公众号「编程学习基地」 文章目录1.安装rpmbuild2.rpm包制作打包rpm包3.rpm包安装4.rpm包卸载1.安装rpmbuild yum install rpmbuild yum install rpmdevtools创建rpm包管理路径,生成rpm相关目录 RPM打包的时候需要编译源码,还需要…...
百川2-13B模型微调实战:提升OpenClaw中文邮件处理准确率
百川2-13B模型微调实战:提升OpenClaw中文邮件处理准确率 1. 问题背景与挑战 去年在尝试用OpenClaw自动化处理公司内部邮件时,我发现了一个棘手的问题:当邮件内容涉及复杂业务术语或非标准表达时,基于通用大模型的OpenClaw经常出…...
别再纠结了!手把手教你根据团队规模和技术栈选对存储方案(Ceph vs MinIO实战对比)
技术选型实战:Ceph与MinIO的团队适配决策框架 当技术负责人面对存储方案选型时,往往陷入"功能强大"与"简单易用"的两难抉择。我曾见证过一家50人规模的AI创业公司,因盲目选择Ceph导致三个月后不得不重构基础设施——他们…...
避坑指南:Coze离线部署时bootstrap.sh文件丢失?Docker Compose卷映射的正确姿势
避坑指南:Coze离线部署时bootstrap.sh文件丢失?Docker Compose卷映射的正确姿势 当你第一次尝试在离线环境中部署Coze时,遇到bootstrap.sh文件丢失的问题可能会让你措手不及。这个看似简单的文件缺失背后,实际上隐藏着Docker数据…...
ib_insync与pandas集成:金融数据分析的完整解决方案
ib_insync与pandas集成:金融数据分析的完整解决方案 【免费下载链接】ib_insync Python sync/async framework for Interactive Brokers API 项目地址: https://gitcode.com/gh_mirrors/ib/ib_insync 想要在Python中高效处理Interactive Brokers的金融数据吗…...
告别手动收集!用OWASP Amass自动化你的子域名侦察(附Kali/Windows/Mac安装配置)
从手工到自动化:OWASP Amass在子域名侦察中的高效实践 在网络安全领域,信息收集的质量和效率直接影响着后续渗透测试的成败。传统的手工子域名收集方式——在多个搜索引擎间切换、查询证书透明度日志、翻阅WHOIS记录——不仅耗时耗力,还容易…...
MES(The Measures of Effect Size )工具箱的使用
MES(The Measures of Effect Size )效应量计算工具的使用 The Measures of Effect Size (MES) Toolbox is a set of Matlab functions which compute a wide range of effect size statistics. The four main toolbox functions cover common analysis d…...
OpenClaw+GLM-4.7-Flash:自动化代码审查工具
OpenClawGLM-4.7-Flash:自动化代码审查工具 1. 为什么需要自动化代码审查 作为一个长期与代码打交道的开发者,我深知代码审查的重要性。但现实情况是,团队中的代码审查往往成为瓶颈——要么因为人力不足导致积压,要么因为审查者…...
从国赛真题到实战演练:蓝桥杯CTF网络安全竞赛核心题型深度剖析
1. 逆向工程实战:从加密程序到Flag还原 去年蓝桥杯CTF国赛的第一道逆向题让不少选手印象深刻。题目给出一个名为encodefile的可执行程序和一个加密后的数据文件enc.dat,要求还原原始flag内容。这类题型在CTF中非常典型,主要考察选手对程序逻辑…...
基于MATLAB的图像加密解密系统 可以正确无误的对图像进行加密和解密 带GUI界面
基于MATLAB的图像加密解密系统 可以正确无误的对图像进行加密和解密 带GUI界面,一步一步完整运行你是否有过这样的疑问——如何让一张普通图片变成外星密文?在MATLAB里玩转图像加密真的可以像搭积木一样简单。今天咱们就来捣鼓一个带界面的图像加密系统&…...
Intel Broadwell处理器选型指南:IBRS、noTSX这些后缀到底该怎么选?
Intel Broadwell处理器选型实战:从安全特性到性能优化的深度解析 在2014年问世的Intel Broadwell架构,作为第五代酷睿处理器的重要里程碑,至今仍在特定应用场景中保持着独特的价值。不同于简单的参数对比,本文将带您深入理解不同…...
