
TinyML模型部署最佳实践:内存优化技巧一个让我熬夜到凌晨三点的bug去年做的一个智能门锁项目,STM32L4平台,跑一个轻量级的人脸检测模型。模型量化后只有120KB,RAM分配了64KB,按理说绰绰有余。结果一上电,系统直接hard fault。调试器挂上去一看,堆栈溢出,malloc返回NULL。我盯着map文件看了两个小时,发现模型推理时临时张量分配了48KB,加上输入输出缓冲区、中间特征图,RAM直接爆了。那天晚上我学会了一件事:TinyML的内存优化,不是“能省则省”,而是“必须省到骨头里”。内存布局:先搞清楚你的战场嵌入式MCU的内存通常分三块:Flash(存模型权重和代码)、SRAM(存运行时数据)、寄存器。我们真正要抠的是SRAM。以STM32G0系列为例,SRAM只有36KB,而一个MobileNetV1的中间特征图就可能吃掉20KB。别这样写:// 每个层都分配独立缓冲区float*layer1_output=(