0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

TensorFlow Lite 微控制器

Tensorflowers 来源:YXQ 2019-08-05 10:11 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

TensorFlow Lite for MicrocontrollersTensorFlow Lite 的一个实验性移植版本,它适用于微控制器和其他一些仅有数千字节内存的设备。

它可以直接在“裸机”上运行,不需要操作系统支持、任何标准 C/C++ 库和动态内存分配。核心运行时 (core runtime) 在 Cortex M3 上运行时仅需 16KB,加上足以用来运行语音关键字检测模型的操作,也只需 22KB 的空间。

开始

要快速入门并运行 TensorFlow Lite for Microcontrollers,请阅读微控制器入门。

注:微控制器入门 链接

https://tensorflow.google.cn/lite/microcontrollers/get_started

为什么微控制器很重要

微控制器通常是小型、低能耗的计算设备,经常嵌入在只需要进行基本运算的硬件中,包括家用电器和物联网设备等。每年都有数十亿个微控制器被生产出来。

微控制器通常针对低能耗和小尺寸进行优化,但代价是降低了处理能力、内存和存储。一些微控制器具有用来优化机器学习任务性能的功能。

通过在微控制器上运行机器学习推断,开发人员可以在不依赖于网络连接的情况下将 AI 添加到各种各样的硬件设备中,这经常用来克服带宽、功率以及由它们所导致的高延迟而造成的约束。在设备上运行推断也可以帮助保护隐私,因为没有数据从设备中发送出去。

功能和组件

C++ API,其运行时 (runtime) 在 Cortex M3 上仅需 16KB

使用标准的 TensorFlow Lite FlatBuffer架构 (schema)

ArduinoKeil 和 Mbed 等较为流行的嵌入式开发平台预生成的项目文件

针对多个嵌入式平台优化

演示口语热词检测的示例代码

开发工作流程

这是将 TensorFlow 模型部署到微控制器的过程:

创建或获取 TensorFlow 模型该模型必须非常小,以便在转换后适合您的目标设备。它只能使用支持的操作。如果要使用当前不被支持的操作,可以提供自己的实现。

将模型转换为 TensorFlow Lite FlatBuffer您将使用 TensorFlow Lite 转换器来将模型转换为标准 TensorFlow Lite 格式。您可能希望输出量化模型,因为它们的尺寸更小、执行效率更高。

将 FlatBuffer 转换为 C byte 数组模型保存在只读程序存储器中,并以简单的 C 文件的形式提供。标准工具可用于将 FlatBuffer 转换为 C 数组。

集成 TensorFlow Lite for Microcontrollers 的 C++ 库编写微控制器代码以使用 C++ 库执行推断。

部署到您的设备构建程序并将其部署到您的设备。

注:构建和转换模型 链接

https://tensorflow.google.cn/lite/microcontrollers/build_convert#%E8%BD%AC%E6%8D%A2%E6%A8%A1%E5%9E%8B

理解 C++ 库 链接

https://tensorflow.google.cn/lite/microcontrollers/library

支持的平台

嵌入式软件开发的挑战之一是存在许多不同的体系结构、设备、操作系统和构建系统。我们的目标是尽可能多地支持流行的组合,并尽可能地让给其他设备添加支持变得简单。

如果您是产品开发人员,您可以下载我们提供的以下平台的构建说明或预生成的项目文件:

如果您的设备尚未被支持,添加支持也许并不困难。您可以在 README.md中了解该过程。

可移植参考代码

如果您还没有考虑具体的的微控制器平台,或者只想在开始移植之前试用代码,最简单的方法是下载与平台无关的参考代码。

注:参考代码 链接

https://drive.google.com/open?id=1cawEQAkqquK_SO4crReDYqf_v7yAwOY8

归档中有很多文件夹,每个文件夹只包含构建一个二进制文件所需的源文件。每个文件夹都有一个简单的 Makefile 文件,您应该能够将文件加载到几乎任何 IDE 中并构建它们。我们还提供了已经设置好的 Visual Studio Code 项目文件,因此您可以轻松地在跨平台 IDE 中浏览代码。

目标

我们的设计目标是使框架可读、易于修改、经过良好测试、易于集成,并通过一致的文件架构、解释器、API 和内核接口与 TensorFlow Lite 完全兼容。

您可以阅读更多在目标和权衡方面有关设计的信息。

限制

TensorFlow Lite for Microcontrollers 专为微控制器开发中的特殊限制而设计。如果您正在使用更强大的设备(例如像 Raspberry Pi 这样的嵌入式 Linux 设备),标准的 TensorFlow Lite 框架可能更容易集成。

应考虑以下限制:

仅支持 TensorFlow 操作的有限子集

仅支持有限的一些设备

低级 C++ API 需要手动内存管理

注:有限子集 链接

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    8249

    浏览量

    162266
  • tensorflow
    +关注

    关注

    13

    文章

    331

    浏览量

    61841
  • TensorFlow Lite
    +关注

    关注

    0

    文章

    26

    浏览量

    802

原文标题:TensorFlow Lite 微控制器

文章出处:【微信号:tensorflowers,微信公众号:Tensorflowers】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    MCU微控制器CH32L103高速电吹风方案

    MCU微控制器是整个电吹风控制系统的指挥中心。英尚微推出的高速电吹风方案,以MCU微控制器CH32L103为主控微控制器,帮助高速电吹风实现高效率、低噪音、高智能和全保护的性能。CH3
    的头像 发表于 11-27 16:20 136次阅读

    选择微控制器MCU几个步骤

    就准备微控制器选型了。这当然不是个好主意。 在微控制器方面做任何决策时,硬件和软件工程师首先应设计出系统的高层结构、框图和流程图,只有到那时才有足够的信息开始对微控制器选型进行合理的决策。此时遵循
    发表于 11-26 07:09

    MCU微控制器是什么(mcu微控制器芯片原理)

    MCU(Microcontroller Unit),中文称为微控制器或单片机,可以理解为"浓缩的计算机"。它将处理、存储、输入输出接口等计算机必需的核心部件,全部集成在一块
    的头像 发表于 11-17 17:23 544次阅读

    【上海晶珩睿莓1开发板试用体验】TensorFlow-Lite物体归类(classify)

    目前尚未得知睿莓1开发板上面有NPU或者DPU之类的额外处理,因此使用树莓派系列使用最广泛的TensorFlow-Lite库进行物体归类,使用CPU运行代码,因此占用的是CPU的算力。在
    发表于 09-12 22:43

    无法将Tensorflow Lite模型转换为OpenVINO™格式怎么处理?

    Tensorflow Lite 模型转换为 OpenVINO™ 格式。 遇到的错误: FrontEnd API failed with OpConversionFailure:No translator found for TFLite_Detection_PostP
    发表于 06-25 08:27

    Analog Devices / Maxim Integrated MAX78002人工智能微控制器数据手册

    Analog Devices MAX78002人工智能微控制器是支持神经网络的AI微控制器。Analog Devices MAX78002可在超低功耗下执行,并可在物联网边缘实时工作。该器件将高能效
    的头像 发表于 06-18 15:19 636次阅读

    微控制器读取闪存中的软件信息时,软件信息部署在哪里? 是 SRAM 吗?

    我对 PMG1 闪光灯有疑问。 1.微控制器读取闪存中的软件信息时,软件信息部署在哪里? 是 SRAM 吗? 2.微控制器加载软件时,在部署之前是否检查 SRAM 是否复位?
    发表于 05-23 06:22

    知名厂商微控制器(MCU)芯片手册分享

    微控制器(MCU)又称单片机,是一种高度集成的微型计算机系统,它将中央处理(CPU)、存储(RAM/ROM/Flash)、输入/输出接口(I/O)及多种外设集成在一块芯片上,专门用于嵌入式
    的头像 发表于 05-15 18:25 2282次阅读
    知名厂商<b class='flag-5'>微控制器</b>(MCU)芯片手册分享

    MAX7800X AI 微控制器开发人员资源

    使用我们的超低功耗 AI 微控制器实现真正的边缘智能 MAX78000 MAX78002 是 Arm® M4F AI 微控制器,带有 RISC-V® 协处理和基于硬件的卷积神经网络 (CNN
    的头像 发表于 05-14 15:09 1181次阅读
    MAX7800X AI <b class='flag-5'>微控制器</b>开发人员资源

    家用电器开发中微控制器的选型要点

    ROHM提供融入自有低功耗技术优势的丰富的低功耗微控制器产品。通过供应微控制器产品,为从事电池供电的小型设备、家用电器、工业设备、社会基础设施、车载设备等各种系统开发的微控制器用户提供支持。本文以
    的头像 发表于 04-24 10:26 923次阅读
    家用电器开发中<b class='flag-5'>微控制器</b>的选型要点

    一文认识ARM微控制器及瑞萨RA系列MCU

    俗称单片机,如果有学过微机原理就会很熟悉这个概念了。而ARM微控制器,顾名思义,就是基于ARM的微控制器,或者说搭载了ARM处理内核的微控制器
    的头像 发表于 03-24 09:17 2285次阅读
    一文认识ARM<b class='flag-5'>微控制器</b>及瑞萨RA系列MCU

    新唐科技微控制器在触控应用方面的优势

    随着物联网 (IoT) 和智能家居应用的蓬勃发展,触控按键技术已成为人机互动界面的关键。搭载电容式触控按键技术的新唐科技NuMicro 微控制器系列,提供防水、抗噪及高灵敏度的触控体验,为各类
    的头像 发表于 02-27 15:52 1039次阅读

    Toshiba推出七款Arm Cortex-M4电机控制微控制器

    Toshiba Electronic Devices 而另一款则加入了M470组,最高工作频率为160MHz。这七款微控制器均具备两种电机控制功能,为用户提供了更多的选择。 这些微控制器不仅延续了
    的头像 发表于 02-06 11:10 1006次阅读

    新唐科技推出专为高温度环境设计的微控制器

    高温高压环境下微控制器的智慧之选 在当今科技飞速发展的时代,各行各业对于电子设备的性能要求日益提升,尤其是在极端环境下,微控制器的稳定性和可靠性更是成为了衡量产品品质的关键因素。面对高温环境的严苛
    的头像 发表于 12-23 13:54 945次阅读