TinyML与Tensor Flow Lite的关系

Posted 17岁boy想当攻城狮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TinyML与Tensor Flow Lite的关系相关的知识,希望对你有一定的参考价值。

目录

发展历史

简介

Tensor Flow Lite for Microcontrollers

主要模块


发展历史

Tensor Flow Lite是针对移动设备以及可穿戴设备领域的深度学习框架,是基于Tensor Flow的,但是Tensor Flow Lite并非能够在一些微型的MCU出色的运行,以及由于它算法的原因并不能很好的处于低功耗模式运行,如果一些芯片只能运行在低功耗的情况下,那么Tensor Flow Lite就显得不是那么融洽了,所以诞生了一个主题:TinyML,全拼:Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers(基于Arduino和超低功耗微控制器的TensorFlow Lite机器学习),并且拥有自己的社区,这个主题的中心思想是不在MCU上进行任何深度学习算法,仅仅只用预测算法,也就是大家训练好模型之后在MCU上运行并预测模型,无法在MCU上对模型进行订正以及训练,并且教大家如何训练一些足够小且精确高的一些模型,它分离了Tensor Flow Lite的大部分功能使其变得尽量简单,这个主题的发起者是:Pete Warden & Daniel Situnayake ,并且TinyML书也是他俩写的。

简介

TinyML是基于Tensor Flow Lite的一个主题,宗旨是让用户能够使用Tensor Flow Lite快速搭建在低功耗、微小的硬件环境下进行深度学习运算,可以理解为它是基于Tensor Flow Lite的解决方案,它提供了非常多的基于Tensor Flow Lite的开源项目,让大家能够基于这些项目快速构建自己的深度学习框架。

为了方便快速上手,TinyML写了许多自己的功能API,这些API基于Tensor Flow Lite,它们位于Tensor Flow Lite源代码的micro目录下,可以通过加载这个目录下的头文件进行快速构建深度学习框架

Tensor Flow Lite for Microcontrollers

TinyML是基于Tensor Flow Lite的,它所有的源代码以及API模块都存在于:tensor flow/lite/micro目录下,它是Tensor Flow仓库的一部分,是以C++方式提供接口,它扩展了许多方便并快速开发的一些API,可以供我们更快的建立模型开发。

主要模块

模块名

all_ops_resolver提供解释器运行模型时的所有运算算法,每次针对运算会拉取所有算法,然后选择一个合适的算法做运算,会耗费大量内存
micro_mutable_op_resolver提供解释器运行模型时的所有运算算法,每次拉取一个算法做运算,并非最合适的算法,浪费内存较小
micro_error_reporter专门用于低功耗的芯片输出调试信息的模块,比Tensor Flow Lite原生的reporter功耗低很多
micro_interpreter包含专门在低功耗芯片的上处理和运行模型的代码

以上是关于TinyML与Tensor Flow Lite的关系的主要内容,如果未能解决你的问题,请参考以下文章

基于Zephyr在微型MCU上使用Tensor Flow Lite Micro做图像分类

Tensor Flow Lite C++ API 介绍

Tensor Flow Lite C++ API 介绍

什么是Tensor Flow和lite以及数据流图

什么是Tensor Flow和lite以及数据流图

基于TensorFlow Lite Micro在物联网设备上玩转TinyML之离线语音唤醒