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 需要手动内存管理

注:有限子集 链接

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

    关注

    49

    文章

    8918

    浏览量

    166127
  • tensorflow
    +关注

    关注

    13

    文章

    336

    浏览量

    62466
  • TensorFlow Lite
    +关注

    关注

    0

    文章

    26

    浏览量

    853

原文标题:TensorFlow Lite 微控制器

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    XUF216-512-TQ128:高性能多核微控制器的深度剖析

    XUF216-512-TQ128:高性能多核微控制器的深度剖析 在嵌入式系统设计领域,多核微控制器的应用越来越广泛,它们为复杂的实时任务提供了强大的处理能力。今天,我们就来深入探讨一款性能卓越的多核
    的头像 发表于 04-27 13:15 183次阅读

    XLF212-512-TQ128:高性能多核微控制器的深度解析

    XLF212-512-TQ128:高性能多核微控制器的深度解析 在嵌入式系统设计领域,选择一款合适的微控制器至关重要。今天,我们将深入探讨 XLF212-512-TQ128 这款多核微控制器,详细
    的头像 发表于 04-27 12:55 271次阅读

    ST7LITE0xY0与ST7LITESxY0 8位微控制器深度剖析

    ST7LITE0xY0与ST7LITESxY0 8位微控制器深度剖析 在电子设计领域,选择一款合适的微控制器对于项目的成功至关重要。ST7LITE0xY0和ST7LITESxY0 8位
    的头像 发表于 04-16 13:40 276次阅读

    MPC5534微控制器:技术解析与应用指南

    MPC5534微控制器:技术解析与应用指南 在电子工程领域,微控制器作为核心组件,广泛应用于各种电子设备中。NXP的MPC5534微控制器凭借其卓越的性能和丰富的功能,在汽车和工业应用中占据重要
    的头像 发表于 04-10 11:40 311次阅读

    深入解析 dsPIC33FJ 系列 16 位微控制器与数字信号控制器

    深入解析 dsPIC33FJ 系列 16 位微控制器与数字信号控制器 在电子工程领域,微控制器和数字信号控制器是构建各种电子设备的核心组件。今天,我们将深入探讨 Microchip 公
    的头像 发表于 04-08 18:35 1216次阅读

    Atmel AVR XMEGA D微控制器深度解析

    Atmel AVR XMEGA D微控制器深度解析 在电子设计领域,选择一款合适的微控制器对于项目的成功至关重要。Atmel AVR XMEGA D系列微控制器以其低功耗、高性能和丰富的外设功能
    的头像 发表于 04-07 16:50 575次阅读

    TMS320F2807x微控制器:工业控制领域的强大之选

    TMS320F2807x微控制器:工业控制领域的强大之选 在工业控制、电机驱动、电力电子等众多领域,高性能微控制器的需求至关重要。TI的TMS320F2807x
    的头像 发表于 03-26 11:35 459次阅读

    在 NPU 上运行了 eIQ TensorFlow Lite 示例模型报错

    处理 neutron-rproc 现已启动 信息:Neutron委托委托:31 个节点中的 29 个节点委托,有 1 个分区。 信息:已应用外部委托。 信息:为CPU创建了TensorFlow Lite
    发表于 03-18 06:52

    ST7LITE3xF2微控制器:特性、应用与设计要点解析

    ST7LITE3xF2微控制器:特性、应用与设计要点解析 在电子工程师的日常工作中,选择一款合适的微控制器对于项目的成功至关重要。ST7LITE3xF2作为ST7
    的头像 发表于 02-09 11:50 816次阅读

    如何在TensorFlow Lite Micro中添加自定义操作符(1)

    相信大家在部署嵌入式端的AI应用时,一定使用过TensorFlow Lite Micro,以下简称TFLm。TFLm 是专为微控制器和嵌入式设备设计的轻量级机器学习推理框架,它通过模块化的操作符系统
    的头像 发表于 12-26 10:34 5913次阅读

    请问GPIO在微控制器中的作用是什么?

    GPIO在微控制器中的作用是什么?
    发表于 12-25 06:46

    CW32系列微控制器的时钟源和定时选项介绍

    CW32系列微控制器的时钟源和定时选项会因具体型号而异,但一般来说,该系列微控制器会提供多种时钟源和定时选项以满足不同应用的需求。 时钟源方面,CW32系列
    发表于 12-16 06:26

    选择微控制器MCU几个步骤

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

    【上海晶珩睿莓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