首页 > 其他分享 >TinyML 科研课堂学习笔记

TinyML 科研课堂学习笔记

时间:2023-03-16 21:13:42浏览次数:47  
标签:cc evaluate make 笔记 micro TinyML test tensorflow 课堂

嵌入式微型机器学习与系统应用

week1

任务

每周/隔周汇报进展 (PPT)

final: 确定研究方向与主体开展研究工作

参考

arduino

tinyml

CS249r

工作周期

研究方向
研究问题
研究方法
方法实现
实验验证、结果分析
抽象、凝练
论文写作

考核

算法、系统报告

  • 课程总结报告
  • 每组研究报告、汇报ppt

选题

week2

报告

参照:Tinyml-book 第四章

使用神经网络拟合 sin(x)

平台: colab

单层感知机

1-8(relu)-1

img

未能很好拟合函数

多层感知机

1-16-16-1

img

拟合效果较好

生成TFLite模型

使用TFLite Converter

量化模型,并生成 C 文件

image-20230302203923051

在物理机上配置环境

week3-4

报告

现存代码与书本内容差异过大,很难参考书中内容完成实验

"Hello World"

  • evaluate_test.cc

    • 导入依赖项

    • 测试配置

    TF_LITE_MICRO_TEST_BEGIN
      
    TF_LITE_MICRO_TEST(LoadModelAndPerformInterference) 
    
    • 记录数据
    • 映射模型
    • 创建 AllOpsResolver
      • 包含 tflite for microcontrollers 的所有可用算子
    • 创建解释器
    • 检查输入张量
    • 对输入进行推断
    • 读入输出

运行测试

在项目根目录下运行代码

make -f tensorflow/lite/micro/tools/make/Makefile test_evaluate_cc_test

编译文件并运行后得到以下结果:

~~~ALL TESTS PASSED~~~

Running evaluate_cc_test took 0.003 seconds

参照书本,尝试使测试失败,修改以下代码(由于版本差异,无法找到完全一致的位置)

结果如下

tensorflow/lite/micro/tools/make/test_latency_log.sh evaluate_cc_test  gen/linux_x86_64_default/bin/evaluate_cc_test '~~~ALL TESTS PASSED~~~' linux
Difference between predicted and actual y value is significant.
make: *** [tensorflow/lite/micro/examples/hello_world/Makefile.inc:22:test_evaluate_cc_test] 错误 1

深入研究代码

标准程序

main_functions.cc
  • setup()
    • 初始化记录、加载模型等
  • loop()
    • 多次运行的代码段
output_handler.cc

通过 ErrorReporter 实例记录 x, y 值

main.cc

setup 后重复调用 loop 函数

运行

缺少文件,无法照书中内容编译

部署到微控制器

使用编译并部署 Arduino 应用

缺少目标

标签:cc,evaluate,make,笔记,micro,TinyML,test,tensorflow,课堂
From: https://www.cnblogs.com/a-wnico-blog/p/17224139.html

相关文章

  • DRF之APIView全笔记
    一.APIView基本视图,所有的都用这个来作viewsetmixin主要管as_view{}里的调配让视图不再需要两个类二.通用视图GenericAPIView(rest_framework.viewsets)主要管self.get_ob......
  • 点分治 学习笔记
    新知识+1。0x00前言点分治适合处理大规模的树上路径信息问题。0x01引入我们通过洛谷的模板题来引入点分治的概念:P3806【模板】点分治1:给定一棵有n个点的带边......
  • 人月神话阅读笔记02
    【续】对于一个项目而言,过多的团队成员反而不会使得团队的整体效率得到提升,因为太多的团队成员就意味着更多的、更复杂的交流和沟通,若是意见分歧太多,反而会直接影响到团队......
  • 抓取王者荣耀英雄列表的爬虫笔记(python+requests)
    在开始这个内容之前,我们先来一张效果图:实现它,需要几个过程:调用王者荣耀助手的数据接口获取所有英雄的图片通过迭代,把所有图片转换成二进制数据流把这些数据导入MySQL数据库......
  • 概率论与数理统计及其应用学习笔记1(numpy+matplotlib)
    先把基本概念都理一遍,博客的后半部分会上具体函数实现,没有前半部分的基础,后半部分看起来会有点吃力样本空间:某个实验的所有可能结果组成的集合样本点:样本空间的每个结......
  • 【Irrlicht引擎 笔记】Core模块
    irr::core向量、平面、数组、列表等基础类都可以在这个命名空间中找到irr::coreirr::core::vector2d<T>irr::core::vector3d<T>irr::core::vector2d<T>1.判断......
  • pytest笔记——fixture作用范围
    一、前言在使用pytest测试框架的时候,会经常使用到fixture,fixture相对灵活,能更好的实现一些用例场景的前置以及后置的操作,但在使用的过程中也经常遇到各种问题,例如我明明已......
  • 欧拉定理学习笔记
    费马小定理:当$a,p\in\mathbb{Z}$且\(p\)为质数,$a\not\equiv0\pmod{p}$时,有:\[a^{p-1}\equiv1\pmod{p}\]故\(a^b\equiva^{b\mod(p-1)}\pmod{p}\)欧......
  • 20212323严文霞--数据库读书笔记一(P3-P18,P31-P33)
    1.1数据库系统概述1.1.1数据库的4个基本概念数据(data)定义:描述事物的符号记录称为数据。数据有多种表现形式,例如数字、文字、图形、图像、音视频等;数据需要进行解......
  • 笔记本水冷改造记录
    1、前言最近用的电脑风扇总是起飞,打开idea都会像喷气飞机一样,使用时还经常卡顿。查看了一下闲鱼,当年8000多买的笔记本,3年半二手只能出大概3500。笔记本跟了一段时间了,还......