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

    文章

    7646

    浏览量

    152019
  • tensorflow
    +关注

    关注

    13

    文章

    329

    浏览量

    60613
  • TensorFlow Lite
    +关注

    关注

    0

    文章

    26

    浏览量

    645

原文标题:TensorFlow Lite 微控制器

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

收藏 人收藏

    评论

    相关推荐

    FPGA 与微控制器优缺点比较

    在现代电子设计领域,FPGA和微控制器(MCU)是两种常用的计算平台。它们各自具有独特的优势和局限性,适用于不同的应用场景。 性能 FPGA FPGA是一种可编程的硬件,由大量的逻辑单元、触发
    的头像 发表于 12-02 09:58 500次阅读

    使用MSP430微控制器的USB键盘

    电子发烧友网站提供《使用MSP430微控制器的USB键盘.pdf》资料免费下载
    发表于 10-18 10:35 0次下载
    使用MSP430<b class='flag-5'>微控制器</b>的USB键盘

    嵌入式系统中微控制器与微处理的区别

    嵌入式微控制器已成为我们日常接触的众多设备背后的无声指挥者。从用于烹饪食物的微波炉到监测健康的智能手表,微控制器确保这些设备能够精准、可靠地运作。本文的目的是揭示嵌入式微控制器的世界,帮助读者理解
    的头像 发表于 10-14 11:02 546次阅读
    嵌入式系统中<b class='flag-5'>微控制器</b>与微处理<b class='flag-5'>器</b>的区别

    ESP32 微控制器系列指南

    2024-05-29 Don Wilcher [微控制器] ESP32 微控制器已成为物联网 (IoT) 和嵌入式控制器领域的核心部分。 ESP32 生态系统的制造商 Espressif
    的头像 发表于 10-02 18:21 3299次阅读
    ESP32 <b class='flag-5'>微控制器</b>系列指南

    C2000™微控制器的USB闪存编程

    电子发烧友网站提供《C2000™微控制器的USB闪存编程.pdf》资料免费下载
    发表于 09-26 11:30 0次下载
    C2000™<b class='flag-5'>微控制器</b>的USB闪存编程

    增加微控制器上的输入数

    电子发烧友网站提供《增加微控制器上的输入数.pdf》资料免费下载
    发表于 09-21 10:30 0次下载
    增加<b class='flag-5'>微控制器</b>上的输入数

    什么是微控制器/它的关键组成部分有哪些?

    微控制器
    芯广场
    发布于 :2024年09月18日 15:02:33

    C2000™微控制器的串行闪存编程

    电子发烧友网站提供《C2000™微控制器的串行闪存编程.pdf》资料免费下载
    发表于 09-03 10:15 0次下载
    C2000™<b class='flag-5'>微控制器</b>的串行闪存编程

    微控制器内部的存储有哪些

    微控制器(MCU)内部的存储微控制器系统的重要组成部分,它负责存储程序代码、数据以及控制逻辑等信息。这些存储类型多样,各具特点,共同支
    的头像 发表于 08-22 10:41 873次阅读

    微控制器的结构和应用

    微控制器(Microcontroller Unit,简称MCU)作为嵌入式系统的核心部件,其原理和应用在现代科技发展中占据了举足轻重的地位。本文将从微控制器的原理、基本结构、工作原理、性能特点以及广泛的应用领域等方面进行详细阐述,旨在全面介绍
    的头像 发表于 08-22 10:40 1331次阅读

    微控制器与运动控制器的区别

    随着现代工业技术的快速发展,控制技术在各种机械设备中扮演着越来越重要的角色。微控制器和运动控制器作为两种常见的控制设备,在各自的领域发挥着重要作用。然而,两者在功能、应用、特点等方面存
    的头像 发表于 06-13 14:52 716次阅读

    微控制器是否能替代PLC

    在工业自动化和控制系统领域,微控制器(MCU)和可编程逻辑控制器(PLC)都是不可或缺的核心设备。它们各自具有独特的功能和优势,并在不同的应用场景中发挥着重要作用。然而,关于微控制器
    的头像 发表于 06-13 14:52 749次阅读

    微控制器的定义和工作原理

    微控制器,作为现代电子技术中的核心部件,其发展历程与电子技术的进步息息相关。自20世纪70年代中期诞生以来,微控制器凭借其高度集成化、低成本、高性能等优势,已广泛应用于电机控制、条码阅读
    的头像 发表于 05-24 17:17 1887次阅读

    新唐科技宣布推出基于微控制器的终端AI平台,加速AI应用普及

    新唐科技宣布推出基于微控制器的终端AI平台,使AI生态系扩展至微控制器领域。
    的头像 发表于 04-23 09:58 772次阅读

    针对 C2000™ 微控制器的集成微控制器 (MCU) 电源解决方案数据表

    电子发烧友网站提供《针对 C2000™ 微控制器的集成微控制器 (MCU) 电源解决方案数据表.pdf》资料免费下载
    发表于 03-04 14:12 0次下载
    针对 C2000™ <b class='flag-5'>微控制器</b>的集成<b class='flag-5'>微控制器</b> (MCU) 电源解决方案数据表