嵌入式微型机器学习与系统应用
week1
任务
每周/隔周汇报进展 (PPT)
final: 确定研究方向与主体开展研究工作
参考
arduino
tinyml
CS249r
工作周期
研究方向
研究问题
研究方法
方法实现
实验验证、结果分析
抽象、凝练
论文写作
考核
算法、系统报告
- 课程总结报告
- 每组研究报告、汇报ppt
选题
week2
报告
参照:Tinyml-book 第四章
使用神经网络拟合 sin(x)
平台: colab
单层感知机
1-8(relu)-1
未能很好拟合函数
多层感知机
1-16-16-1
拟合效果较好
生成TFLite模型
使用TFLite Converter
量化模型,并生成 C 文件
在物理机上配置环境
week3-4
报告
-
主要任务:
- 创建 TinyML 应用程序 Hello World Example
-
参考:
现存代码与书本内容差异过大,很难参考书中内容完成实验
"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