点击上方“AI遇见机器学习”,选择“星标”公众号

重磅干货,第一时间送达

【导读】TensorFlow Lite是可帮助开发人员在移动端(mobile)、嵌入式(embeded)和物联网(IoT)设备上运行TensorFlow机器学习模型的一组工具。它使设备机器学习具有低延迟和更小的二进制体积。本文是TensorFlow Lite入门指导。

TensorFlow Lite

TensorFlow Lite由两个主要组件组成:

  1. interpreter(解释器):可在许多不同的硬件类型(包括手机,嵌入式Linux设备和微控制器)上运行经过特别优化的模型。

  2. converter(转换器):将TensorFlow模型转换为供解释器使用的有效形式,并且可以引入优化以改善二进制大小和性能。

下图显示了 TensorFlow Lite 的架构设计:

在设备端使用模型的过程:

  1. 训练并保存模型(开发机器)

  2. 转换模型(开发机器)

  3. 将转换后的模型复制到设备上

  4. 使用TF Lite解释器运行推理

converter与量化

converter使用TF模型生成FlatBuffer文件(.tflite),然后将FlatBuffer文件部署到客户端设备(例如移动设备,嵌入式设备)并使用TensorFlow Lite解释器在本地运行。下图显示了此转换过程:

converter代码实现如下:

为什么要使用FlatBuffer? 主要原因有:

  1. 无需解析/拆包即可访问序列化数据

  2. 内存效率和速度-访问数据所需的唯一内存是缓冲区的内存

  3. 没有依赖项的跨平台代码

使用converter转换模型的主要原因:

使模型更小(内存占用更小)

提高推理效率

需要较少的内存访问

推理中使用更少的能量

注:推理(Inference) 是通过模型(model)运行数据(data)以获得预测(predictions)的过程。这个过程需要模型(model)、解释器(interpreter)和输入数据(input data)。

为了实现这些目标,主要组成部分是所谓的量化(Quantization)如下图:

参考网址:

https://sahnimanas.github.io/post/quantization-in-tflite/#deep_compression

Quantization有两种量化方式:

  1. Post-training quantization

    更容易实现,在大多数情况下非常高效

  2. Training-aware quantization

    更复杂,需要重写计算图

量化公式:

r是真实值(通常是float32)

q是B位整数(uint8,uint32等)量化表示

S(floating)和z(integer)是我们缩放的因子

更多内容请参考原始PPT。

资源分享

为了方便大家,小编已打包上面的资源,附上云盘下载链接,长按扫码关注Python与机器智能后台回TFLAP(建议复制)即可获得百度网盘地址。

Python与机器智能

TensorFlow Lite指南实战,附48页ppt相关推荐

  1. 小米用户画像实战(附48页PPT)

    来源:数据分析1480本文多图,建议阅读5分钟用户画像非常重要. 用户画像非常重要,在广告业务,决定你用户增长的关键,你只有足够的了解你的人群,才可以更好的为他们服务,根据不同的人群,推荐不同的广告, ...

  2. 9大零售行业数字化转型案例场景,覆盖95%行业痛点,附48页ppt

    随着人口流量红利消退以及新客户消费形态的转变,传统零售行业想要有所突破,就必须回归以客户为中心的核心思路,利用数字化驱动客户的全生命周期运营,进而带来新的增长点 在此背景下,我们基于用户和场景为中心, ...

  3. 京东金融大数据平台架构(附82页PPT)

    推荐阅读: 世界的真实格局分析,地球人类社会底层运行原理 企业IT技术架构规划方案 华为内网最火的文章:什么是内卷? 不是你需要中台,而是一名合格的架构师(附各大厂中台建设PPT) 华为内部几近满分的 ...

  4. 大数据平台数据治理与建设方案(附84页PPT)

    公众号推文规则变了,点击上方 "数据社", 设为星标 后台回复[加群],申请加入数据学习交流群 大家好,我是一哥,今天给大家分享一下大数据平台的数据治理与建设方案,废话不说,干货收 ...

  5. 视觉语言研究进展到哪了?CVPR2021视觉语言研究全面概述,附430页ppt

    人工智能研究的长期目标是构建能够看到我们周围丰富视觉环境的智能体,用自然语言将这种理解传达给人类和其他智能体,并在物理或具身环境中行动.为此,计算机视觉和自然语言处理的最新进展取得了巨大的进展--从生 ...

  6. vs 选定内容没有属性页_从智能单品,到全屋智能:2019中国智能家居发展白皮书【附82页PPT】...

    2019年,智能家居行业在技术.市场和行业的变革中迎接新的挑战和机遇.一方面,AI.IoT.边缘计算全面赋能智能家居:另一方面,中国的房地产行业正在从上半场的"增量开发",切换到下 ...

  7. 数字式声纳设计原理 pdf_阿里P7大牛,深入剖析JVM底层设计原理+高级特性pdf,附46页ppt...

    前言 JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的. 引入J ...

  8. java 底层ppt_阿里P7大牛,深入剖析JVM底层设计原理+高级特性pdf,附46页ppt

    前言 JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的. 引入J ...

  9. DeepMind Nando(原牛津大学教授)强化学习最新进展,含图文、公式和代码,附102页PPT下载...

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送 转自:专知 [导读]在DeepMing任职的Nando de Freitas(原牛津大学 ...

最新文章

  1. JSON数据序列化与反序列化实战
  2. 北京44岁程序员失业,感叹:编程估计没戏了,想去卖煎饼果子
  3. GVIM的使用(动图指导,全网首发)
  4. urllib2设置代理
  5. 面试官:new一个对象的过程中发生了什么
  6. C++ dll的隐式与显式调用
  7. 安卓 监听 mysql_Android监听数据库的值改变与否
  8. 剑指Offer丑数问题
  9. ETC因背胶问题脱落,如何重新激活?
  10. navicat连接批量删除_多连接数据库管理工具:Navicat Premium for Mac
  11. H.264官方软件JM源代码简单分析-解码器ldecod
  12. ASP.NET MVC 小小总结
  13. 自我监督学习和无监督学习_弱和自我监督的学习-第2部分
  14. 运行 appimage linux,Linux 设置图标启动 AppImage (Wiznote和Navicat)
  15. 电路中负电源的注意事项
  16. 78 python - 打飞机案例(让敌机移动)
  17. 微信朋友验证消息是什么来源_微信好友来源朋友验证消息
  18. PHP地图规划骑行路径,规划结果 + 骑行路线绘制
  19. android证书转pem,Android签名文件转化为pk8和pem的实现
  20. 路由器的两个端口接在同一个交换机上_什么是路由器交换机?路由器交换机介绍!...

热门文章

  1. python 开始学习
  2. Apache中KeepAlive 配置
  3. 41、应用如何签名以及签名的意义(转载)
  4. C++链式队列基本操作
  5. 知乎网解决HTML5 Placeholder的方案
  6. 病毒周报(091102至091108)
  7. Transact_SQL语句大全
  8. 分割字符串_[话俾你知]Python使用正则处理字符串技巧(分割、替换)
  9. 列子御风 大道至简 心诚天人合一
  10. ASIA TODAY 英文版