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

    文章

    6812

    浏览量

    147648
  • tensorflow
    +关注

    关注

    13

    文章

    313

    浏览量

    60242
  • TensorFlow Lite
    +关注

    关注

    0

    文章

    27

    浏览量

    542

原文标题:TensorFlow Lite 微控制器

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

收藏 人收藏

    评论

    相关推荐

    S1C17M02,S1C17M03微控制器

    微控制器
    Piezoman压电侠
    发布于 :2024年01月24日 17:53:48

    微控制器基础】——从历史切入,了解微控制器的五个要素(上)

    微控制器基础】——从历史切入,了解微控制器的五个要素(上)
    的头像 发表于 12-07 10:55 204次阅读
    【<b class='flag-5'>微控制器</b>基础】——从历史切入,了解<b class='flag-5'>微控制器</b>的五个要素(上)

    微控制器基础】—— 从历史切入,了解微控制器的五个要素(下)

    微控制器基础】—— 从历史切入,了解微控制器的五个要素(下)
    的头像 发表于 12-06 17:23 276次阅读
    【<b class='flag-5'>微控制器</b>基础】—— 从历史切入,了解<b class='flag-5'>微控制器</b>的五个要素(下)

    AT32微控制器硬件设计指南及抗EMC设计要点

    本应用笔记为使用AT32系列微控制器芯片的硬件设计人员提供参考设计,包括供电电源要求、时钟管理、复位管理、调试接口的管理。它说明了使用AT32系列微控制器芯片所需的最低硬件资源。文中介绍了有关硬件
    发表于 10-25 07:54

    智芯微控制器在汽车自吸门上的应用

    智芯微控制器在汽车自吸门上的应用
    的头像 发表于 10-19 18:22 313次阅读
    智芯<b class='flag-5'>微控制器</b>在汽车自吸门上的应用

    如何选择微控制器

    干货 | 如何选择微控制器
    的头像 发表于 09-21 17:23 348次阅读

    CW32系列微控制器选型表分享

    CW32系列微控制器选型表
    发表于 09-15 07:30

    Arm CoreSight™DAP-Lite2技术参考手册

    架构规范ADIV6.0的调试访问端口(DAP)。 一款支持AMBA APB4调试接口的应用程序和实时处理。 另一款支持带有AMBA AHB5调试接口的微控制器处理。 DAP-Lite
    发表于 08-17 06:27

    PrimeCellµ DMA控制器(PL230)技术参考手册

    µDMAC是一种符合高级微控制器总线架构(AMBA)的片上系统(SoC)外围设备,由ARM开发、测试和许可。 它是一个非常低的门计数DMA控制器,与AMBA AHB Lite协议兼容
    发表于 08-02 15:36

    汽车微控制器的供电电压

    微控制器供电 微控制器的供电电压可以分为以下几种: ·5V:5V是最常见的微控制器供电电压,包括许多传统的8位微控制器和一些较老的16位微控制器
    的头像 发表于 07-19 10:45 829次阅读
    汽车<b class='flag-5'>微控制器</b>的供电电压

    什么是微控制器?它是如何工作的?

    微控制器(MCU)普遍存在于电子产品中,如果你的微波炉有LED或LCD屏幕和键盘,则它肯定包含微控制器。汽车也是一样,可以有很多个:发动机由微控制器控制,防抱死刹车、巡航
    的头像 发表于 07-06 11:12 1231次阅读

    使用Wio Terminal和Tensorflow Lite创建智能气象站

    电子发烧友网站提供《使用Wio Terminal和Tensorflow Lite创建智能气象站.zip》资料免费下载
    发表于 06-25 10:30 0次下载
    使用Wio Terminal和<b class='flag-5'>Tensorflow</b> <b class='flag-5'>Lite</b>创建智能气象站

    MPC5642A微控制器是否支持CANOpen?

    MPC5642A 微控制器是否支持 CANOpen? 我正在使用 MPC5642A 微控制器,这个微控制器有 CANbus 接口。我想用这个微控制器与一个带有 CANopen 接口的传
    发表于 06-09 06:29

    如何使用pycoral、tensorflow-lite和edgetpu构建核心最小图像?

    如果您能告诉我们如何使用 pycoral、tensorflow-lite 和 edgetpu 构建核心最小图像,我们将不胜感激。
    发表于 06-05 10:53

    如何使用meta-imx层中提供的tensorflow-lite编译图像?

    我们正在尝试使用 meta-imx 层中提供的 tensorflow-lite 编译图像。我们没有任何 自定义更改/bbappends (Highlight to read)sources
    发表于 05-29 06:55