TinyML之Hello world----基于Arduino Nano 33 BLE Sense Rev2的呼吸灯

embedded/2024/9/24 0:18:05/

早期版本的Hello World

这应该是一个逼格比较高的呼吸灯了,用ML来实现呼吸灯功能,之前已经有大佬发过类似的文章:https://blog.csdn.net/weixin_45116099/article/details/126310816

当前版本的Hello World

这是一个ML的入门例程,但是随着版本的变更,现在最新的例程已经采用了新的方法:https://github.com/tensorflow/tflite-micro/tree/main/tensorflow/lite/micro/examples/hello_world

说实话,我一看到里面的bazel,直接就蒙了,光搭建开发环境就可以把我们菜鸟劝退。

好在,有colab,这里不得不表扬一下人家业界巨佬的奉献精神,有了colab,好多基础环境人家Google已经帮你搭建好了。

环境搭建

其实,所谓的环境搭建,就是在colab里安装bazel,下载github工程:

!npm install -g @bazel/bazelisk
!git clone https://github.com/tensorflow/tflite-micro.git

一条代码搞定。

Run the evaluate.py script on a development machine

把目录切换到/content/tflite-micro,这里插一句,colab的目录切换用!cd好像不太好用,还是得用python

import os
path = "/content/tflite-micro"
os.chdir(path)
print(os.getcwd())

然后运行:

bazel build tensorflow/lite/micro/examples/hello_world:evaluate
bazel run tensorflow/lite/micro/examples/hello_world:evaluate
bazel run tensorflow/lite/micro/examples/hello_world:evaluate -- --use_tflite

Run the evaluate_test.py script on a development machine

bazel build tensorflow/lite/micro/examples/hello_world:evaluate_test
bazel run tensorflow/lite/micro/examples/hello_world:evaluate_test

Run the tests on a development machine

bazel run tensorflow/lite/micro/examples/hello_world:hello_world_test
make -f tensorflow/lite/micro/tools/make/Makefile test_hello_world_test

Train your own model

bazel build tensorflow/lite/micro/examples/hello_world:train
bazel-bin/tensorflow/lite/micro/examples/hello_world/train --save_tf_model 
--save_dir=/tmp/model_created/
bazel build tensorflow/lite/micro/examples/hello_world/quantization:ptq
bazel-bin/tensorflow/lite/micro/examples/hello_world/quantization/ptq  
--source_model_dir=/tmp/model_created --target_dir=/tmp/quant_model/

这样,就在/tmp/quant_model/下生成了量化后的模型参数,用下列代码转换成Arduino可以运行的模型参数:

import os
path = "/tmp/quant_model"
os.chdir(path)
print(os.getcwd())
!apt get -qq install xxd
!xxd -i hello_world_int8.tflite > hello.cc
!cat hello.cc

在Arduino Nano 33 BLE Sense Rev2上运行

在Arduino IDE里打开Harvard_TinyMLx下的hello world工程,将里面的model.cpp里面的模型替换为上面生成的模型,编译上传即可看到呼吸灯了。
打开串品绘图窗口,如下:
在这里插入图片描述


http://www.ppmy.cn/embedded/28737.html

相关文章

结构方程模型(SEM)时间重复测量数据分析

张老师(研究员),长期从事R语言结构方程模型、群落生态学、保护生物学、景观生态学和生态模型方面的研究和教学工作,已发表了多篇论文,拥有丰富的科研及实践经验。 很多研究需要进行多个时间点(如天/月/年&…

【书生·浦语大模型实战营第二期】LMDeploy量化部署LLM实践——学习笔记5

文章目录 LMDeploy环境部署LMDeploy模型对话使用Transformers库运行模型使用LMDeploy与模型对话 LMDeploy量化部署(lite)设置最大KV Cache缓存大小使用W4A16量化 LMDeploy服务(serve)启动API服务器命令行客户端连接FASTAPI服务器网页客户端连接FASTAPI服务器 Python代码集成参考…

ubuntu开启message文件

环境:ubuntu 20.04 1、首先需要修改 /etc/rsyslog.d/50-default.conf 文件;源文件中message被注释,如下图: 2、打开注释: 3、重启服务 systemctl restart rsyslog.service 如此即可!

【设计模式】之责任链模式

系列文章目录 【设计模式】之策略模式 文章目录 系列文章目录 前言 一、什么是责任链模式 二、有什么使用场景呢 三、如何使用责任链模式 总结 前言 上次我们了解了设计模式中的策略模式,今天我们继续学习责任链模式。🌈 一、什么是责任链模式 为…

企微SOP新风尚:构建高效、精准的营销流程

随着企业微信(企微)在营销领域的广泛应用,越来越多的企业开始重视企微SOP(Standard Operating Procedure,标准操作流程)的建设。一个完善的企微SOP不仅能够帮助企业实现营销流程的标准化和规范化&#xff0…

TDengine写入2000万数据查询体验

最近在寻找时序数据库,想应用在公司的项目上。 上一篇文章实验了InfluxDB:windows上使用influx2.7学习,还学习了flux语言,最后发现宽表查询比较困难,就放弃了,于是决定试试国产时序数据库TDengine 参考 官方文档:htt…

QT-QTCreator环境配置

准备工作: 下载QT: 链接:https://pan.baidu.com/s/1prJcsC4DGqhKiXvLuPQFVA?pwd60b3 提取码:60b3下载WindowsKits: 链接:https://pan.baidu.com/s/1QNiS3HpbH5M5kXx5AhkqnQ?pwde2h8 提取码:e2h8安装的…

基于Lucene的搜索引擎设计与实现:技术总结与展望

论文、答辩资料、源代码见下 引言 在大数据时代背景下,如何快速有效地从海量网络信息中检索出有价值的信息,是当前技术领域面临的一大挑战。本次毕业设计的核心工作是设计并实现一个基于Lucene的搜索引擎,旨在提高信息检索的效率和准确性。…