嵌入式部署机器学习模型---TinyML

news2024/9/21 1:23:40

我们目前生活在一个被机器学习模型包围的世界。在一天中,您使用这些模型的次数比您意识到的要多。诸如浏览社交媒体、拍照、查看天气等日常任务都依赖于机器学习模型。您甚至可能会看到此博客,因为机器学习模型向您推荐了此博客。

我们都知道训练这些模型的计算成本很高。但大多数时候,在这些模型上运行推理的计算成本也很高。我们使用机器学习服务的速度,我们需要足够快的计算系统来处理它。因此,大多数模型都运行在具有 CPU 和 GPU 集群(在某些情况下甚至是 TPU)的大型数据中心上。

大并不总是更好

当您拍照时,您希望机器学习的魔力立即发生。您不想等待图像发送到正在处理图像并再次发送回的数据中心。在这种情况下,您希望机器学习模型在本地运行。

当您说“Alexa”或“好的,Google”时,您希望设备立即响应您。等待设备将您的语音发送到对其进行处理的服务器,并检索信息。这需要时间并削弱用户体验。同样,在这种情况下,您希望机器学习模型在本地运行。

什么是 TinyML

TinyML 是机器学习和嵌入式系统的一个研究领域,它探索可以在微控制器等小型低功耗设备上运行的模型类型。它可以在边缘设备上实现低延迟、低功耗和低带宽模型推理。标准消费类 CPU 的功耗在 65 瓦到 85 瓦之间,标准消费类 GPU 的功耗在 200 瓦到 500 瓦之间,而典型的微控制器的功耗约为毫瓦或微瓦。这大约减少了一千倍的功耗。这种低功耗使得TinyML 设备可以在不插电的情况下使用电池运行数周、数月,在某些情况下甚至数年,同时在边缘运行 ML 应用程序。

机器学习的未来是微小而光明的

TinyML 的优点

  1. 低延迟:由于模型在边缘运行,因此无需将数据发送到服务器即可运行推理。这减少了输出的延迟。
  2. 低功耗:正如我们之前讨论的,微控制器的功耗非常低。这使得它们能够在不充电的情况下运行很长时间。
  3. 低带宽:由于数据不必不断发送到服务器,因此使用的互联网带宽较少。
  4. 隐私:由于模型在边缘运行,因此您的数据不会存储在任何服务器中。

TinyML的应用

通过总结和分析低功耗设备边缘的数据,TinyML 提供了许多独特的解决方案。尽管 TinyML 是一个新兴领域,但它已在生产中使用多年。“OK Google”、“Alexa”、“Hey Siri”唤醒词是 TinyML 的一个示例。在这里,设备始终处于开启状态,并正在分析您的声音以检测唤醒词。我将在这里添加一些 TinyML 的更多应用。

  1. 工业预测维护:机器很容易出现故障。在低功耗设备上使用 TinyML,可以持续监控机器并提前预测故障。这种预测性维护可以显着节省成本。澳大利亚初创公司 Ping Services 推出了一款物联网设备,该设备通过磁性连接到涡轮机外部并分析边缘的详细数据来自动监控风力涡轮机。该设备甚至可以在潜在问题发生之前向当局发出警报。
  2. 医疗保健: Solar Scare Mosquito 项目使用 TinyML 来遏制登革热、疟疾、寨卡病毒、基孔肯雅热等蚊媒疾病的传播。它的工作原理是检测蚊子的繁殖条件并搅动水以防止蚊子繁殖。它依靠太阳能运行,因此可以无限期地运行。
  3. 农业: Nuru 应用程序可帮助农民通过使用 TensorFlow Lite 在设备上运行机器学习模型拍摄照片来检测植物中的疾病。由于它可以在设备上运行,因此不需要互联网连接。这对于偏远农民来说是一个至关重要的要求,因为他们可能没有适当的互联网连接。
  4. 海洋生物保护:基于机器学习的智能设备用于实时监控西雅图和温哥华周围水道中的鲸鱼,以避免在繁忙的航道上发生鲸鱼袭击。

我该如何开始?

  1. 硬件: Arduino Nano 33 BLE Sense是用于在边缘部署机器学习模型的建议硬件。它包含一个运行频率为 64MHz 的 32 位 ARM Cortex-M4F 微控制器,具有 1MB 程序存储器和 256KB RAM。该微控制器提供足够的马力来运行 TinyML 模型。Arduino Nano 33 BLE Sense 还包含颜色、亮度、接近度、手势、运动、振动、方向、温度、湿度和压力传感器。它还包含一个数字麦克风和一个低功耗蓝牙 (BLE) 模块。该传感器套件对于大多数应用来说已经足够了。
  2. 机器学习框架:只有少数框架可以满足 TinyML 的需求。其中,TensorFlow Lite最受欢迎且拥有最多的社区支持。使用 TensorFlow Lite Micro,我们可以在微控制器上部署模型。
  3. 学习资源:由于TinyML是一个新兴领域,目前的学习资料并不多。但也有一些优秀的材料,例如 Pete Warden 和 Daniel Situnayake 的书“TinyML:在 Arduino 和超低功耗上使用 TensorFlow Lite 进行机器学习”、哈佛大学 Vijay Janapa Reddi 的 TinyML 课程以及 Digikey 关于 TinyML 的博客和视频。

结论

微控制器无处不在,它们收集大量数据。借助 TinyML,我们可以利用这些数据来构建更好的产品

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/959890.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【位运算】leetcode371:两整数之和

一.题目描述 两整数之和 二.思路分析 题目要求我们实现两整数相加,但是不能使用加号,应该立马想到是用位运算来解决问题。之前说过,异或就是“无进位相加”,故本题可以先将两数异或,然后想办法让得到的结果进位即可。…

yolov5自定义模型训练三

经过11个小时cpu训练完如下 在runs/train/expx里存放训练的结果, 测试是否可以检测ok 网上找的这张识别效果不是很好,通过加大训练次数和数据集的话精度可以提升。 训练后的权重也可以用视频源来识别, python detect.py --source 0 # webca…

WOFOST模型与PCSE模型技术应用

实现作物产量的准确估算对于农田生态系统响应全球变化、可持续发展、科学粮食政策制定、粮食安全维护都至关重要。传统的经验模型、光能利用率模型等估产模型原理简单,数据容易获取,但是作物生长发育非常复杂,中间涉及众多生理生化过程&#…

Ansible-playbook条件语句when的使用

目录 when关键字1.基本使用2.比较运算符3.逻辑运算符4.判断变量 when关键字 1.基本使用 当ansible_os_family是redhat的时候,执行安装vim,不是的话跳过 --- - hosts: webtasks:- name: Install VIM via yumyum:name: vim-enhancedstate: installedwhe…

mac安装brew

mac安装brew 安装brew 安装brew 第一步:执行. /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"第二步:输入开机密码 第三步:回车继续。等待安装完成 第四步:根…

最新盘点!上海值得加入的互联网公司有哪些?(文末附招聘岗位)

暑假结束了,除了迎来了青春热烈的开学季以外,也带来了打工人备受期待的金九银十秋招季。 我们在找工作时,每个人都期待能遇到一个“神仙公司”,譬如丰厚的薪水、优越的晋升通道、融洽的同事关系、良好的work-life balance以及自由…

KubeSphere 社区双周报 | KubeKey 新增网络插件 Hybridnet | 2023.08.18-08.31

KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书、新增的讲师证书以及两周内提交过 commit 的贡献者,并对近期重要的 PR 进行解析,同时还包含了线上/线下活动和布道推广等一系列社区动态。 本次双周报涵盖时间为:2023.08.18-2023.…

Stable Diffusion中的ControlNet插件

文章目录 ControlNet的介绍及安装ControlNet的介绍ControlNet的安装 ControlNet的功能介绍ControlNet的应用与演示 ControlNet的介绍及安装 ControlNet的介绍 ControlNet 的中文就是控制网,本质上是Stable Diffusion的一个扩展插件,在2023年2月份由斯坦…

红米手机使用google play

开启: 1.在 Google Play 支持的设备列表内的小米/红米手机已预装谷歌服务,我们只需要安装Play 商店。 1.开启谷歌服务: 设置 -> 帐号与同步 > 谷歌基础服务 2.安装 Play 商店: 在应用商店搜索 [google play] ,安装[Google Play 商店] …

NPM 常用命令(一)

目录 1、npm 1.1 简介 1.2 依赖性 1.3 安装方式 2、npm access 2.1 命令描述 2.2 详情 3、npm adduser 3.1 描述 4、npm audit 4.1 简介 4.2 审计签名 4.3 操作示例 4.4 配置 audit-level dry-run force json package-lock-only omit foreground-scripts …

更改SVG矢量图片的颜色

问题:我从网上找的svg图片,颜色一直是黑色的,和下边的用户管理模块、卷题管理等模块的图标对不起来,看起来很怪。 办法: 1.直接在你的编程软件中 ctrl + alt +F,全局搜索“组织管理” 找到组织管理对应的文件,然后双击点进去 2.找到icon 这里对应的icon的属性值就是矢…

代理IP的需求量为什么越来越大?如何选择适合您的全球代理IP?

在当今信息爆炸的时代,代理IP已成为大数据领域一项必不可少的工具。越来越多的企业和个人使用代理IP来进行互联网业务,这导致代理IP的需求量不断增加。这是因为代理IP不仅可以帮助用户进行网络爬虫和数据采集,还能够保护个人隐私和网络安全&a…

如何产生潜在客户:增加公司的销售额

图片来源于:SaleSmartly官网 数字营销拥有大量资源可以帮助您增加业务收入。您可以实施多种有关如何产生潜在客户的策略。这是买家旅程中的重要一步,您可以识别潜在客户并定义需要做什么来帮助他们决定购买您的产品或服务。 毫无疑问,征服潜在…

uniapp授权小程序隐私弹窗效果demo(整理)

<template> <view class"dealBox"><view class"txtBox padding10"><!-- 查看协议 -->在您使用施工现场五星计划小程序之前&#xff0c;请仔细阅读<text class"goToPrivacy" click"handleOpenPrivacyContract&qu…

常用激活函数整理

最近一边应付工作&#xff0c;一边在补足人工智能的一些基础知识&#xff0c;这个方向虽然新兴&#xff0c;但已是卷帙浩繁&#xff0c;有时不知从何入手&#xff0c;幸亏有个适合基础薄弱的人士学习的网站&#xff0c;每天学习一点&#xff0c;积跬步以至千里吧。有像我一样学…

产品经理进行用户分层 常见的4大方法

用户分层对产品开发非常重要&#xff0c;通过对用户进行分层&#xff0c;我们可以更好地理解不同用户群体的需求、行为和偏好&#xff0c;从而更精准定位和设计产品&#xff0c;有利于提高市场竞争力。 如果不进行用户分层可能导致产品经理不了解用户需求&#xff0c;无法提供个…

ODrive解析移植(一)—— 国产替代方案(VScode版移植)

目录 一、ODrive简介1.1、 github下载 二、ODrive官方版本的问题三、国产化方案3.1、版本0.5.1与0.5.6的区别3.2、移植说明3.2.0、修改“tup.config.default”文件名为“tup.config”&#xff0c;打开屏蔽“v3.6-56V”&#xff0c;3.2.1、修改死区时间&#xff0c;3.2.2、修改采…

2023年您需要虚拟助手的 5个迹象

您的企业今年有以收入为中心的战略目标要实现。然而&#xff0c;新的增长往往伴随着您现有员工的新责任。工作负载增加。团队达到最大容量。超负荷的员工表现出倦怠的迹象。在这些时候&#xff0c;企业主通常会意识到雇用虚拟助理 &#xff08;VA&#xff09; 提供支持的好处。…

服务器上使用screen的学习记录

服务器上使用screen 训练模型的时候&#xff0c;花费时间是很长的&#xff0c;不可能一直挂在桌面上。所以就想到用screen了。 记录一下简单的操作指令。 创建screen screen -S roof # 新建一个名字为name的窗口&#xff0c;并进入到该窗口中进入后打开环境&#xff0c;运…

一套成熟在用的Spring Cloud工程项目数字化管理云平台源码

技术架构&#xff1a; 微服务JavaSpring Cloud VueUniApp MySql 开发语言&#xff1a;Java 开发工具&#xff1a;Idea 前端框架&#xff1a;Vue 后端框架&#xff1a;Spring Cloud 数 据 库&#xff1a;MySql 移 动 端&#xff1a;UniApp 系统端口&#xff1a;PC端&…