错过再等一年:TinyML+C语言部署技术内幕首次公开

STM32+TinyML:打造低功耗端侧人体感应设备(模型压缩 + 部署教程) 摘要: 随着物联网(IoT)与边缘计算的融合,端侧AI成为智能设备落地的关键方向。TinyML技术在STM32微控制器上实现低功耗、高性能的人体感应应用,解决了资源受限场景下的实时性、隐私保护与通信成本问题。通过硬件加速(如STM32N6的NPU)与轻量化模型(INT8量化、剪枝)协同优化,系统在微秒级响应、低于1毫瓦功耗下运行,支持智能家居、工业监测等场景。MQTT协议与边缘网关构建了工业级数据传输闭环,结合TLS加密与断网缓存机制保障可靠性。实测显示,优化后的STM32设备在周期性唤醒策略下日均能耗仅0 阅读详情

第一章:TinyML与C语言部署的现状与挑战

TinyML(微型机器学习)致力于在资源极度受限的嵌入式设备上运行机器学习模型,典型应用场景包括可穿戴设备、工业传感器和边缘IoT节点。由于这些设备通常配备低功耗MCU,缺乏操作系统支持,C语言成为实现高效部署的核心工具。然而,在将复杂的AI模型压缩并部署到此类平台时,开发者面临诸多技术瓶颈。

资源限制带来的设计约束

嵌入式系统普遍具有内存小(几KB至几十KB RAM)、算力弱(如ARM Cortex-M系列)和功耗敏感等特点。这要求模型必须经过量化、剪枝和算子融合等优化手段,最终以静态内存分配的方式用C实现推理逻辑。例如,TensorFlow Lite for Microcontrollers 就通过提供C++ API 并允许纯C封装来适配底层硬件。

手动优化仍是主流实践

尽管自动化工具链逐步完善,但在实际部署中,工程师仍需手动重写部分内核函数以提升性能。常见做法包括:
  • 使用定点运算替代浮点计算
  • 展开循环以减少分支开销
  • 利用编译器内置函数(如__builtin_mul_overflow)增强安全性

// 示例:8位定点矩阵乘法核心片段
for (int i = 0; i < OUTPUT_SIZE; ++i) {
  int32_t acc = 0;
  for (int j = 0; j < INPUT_SIZE; ++j) {
    acc += input[j] * weight[i][j];  // 定点数相乘
  }
  output[i] = (acc >> SHIFT) + bias[i];  // 右移模拟除法完成缩放
}

部署流程中的典型问题对比

挑战类型具体表现常用对策
内存不足模型权重超出Flash容量权重量化至INT8或二值化
实时性差推理延迟超过10ms内联汇编优化关键路径

第二章:TinyML模型基础与C语言适配原理

2.1 模型压缩与量化技术在TinyML中的应用

在TinyML场景中,设备资源受限,模型压缩与量化成为部署深度学习模型的关键步骤。通过减少模型参数和降低数值精度,可在几乎不损失准确率的前提下显著减小模型体积与计算开销。
模型量化策略
常见的量化方式包括对称量化与非对称量化,将浮点权重映射到8位整数(int8)甚至更低。例如,在TensorFlow Lite中使用动态范围量化:

converter = tf.lite.TFLiteConverter.from_keras_model(model)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_quant_model = converter.convert()
该代码启用默认优化策略,自动执行权重量化与部分算子融合,使模型体积缩小约75%,推理速度提升2-3倍。
剪枝与知识蒸馏协同优化
  • 结构化剪枝移除冗余神经元,降低FLOPs
  • 知识蒸馏将大模型“暗知识”迁移到小模型
  • 二者结合可在Microcontroller上实现90%以上压缩率

2.2 从Python训练到C代码生成的关键路径

在机器学习部署流程中,将Python训练的模型转化为高效嵌入式执行是关键挑战。核心路径包括模型固化、中间表示转换与代码生成。
模型导出与中间表示
典型流程首先将PyTorch或TensorFlow模型导出为ONNX格式,作为跨平台中间表示:
# 将PyTorch模型导出为ONNX
torch.onnx.export(model, dummy_input, "model.onnx", 
                  input_names=["input"], output_names=["output"])
该步骤固化计算图并剥离训练相关操作,便于后续分析与优化。
代码生成策略
通过工具链(如TVM、NNGen)解析ONNX模型,生成可移植C代码。例如:
  • 算子映射:将矩阵乘法映射为C中的循环结构
  • 内存布局优化:采用静态内存分配减少运行时开销
  • 精度控制:支持float32到fixed-point的量化转换
最终输出的C代码可直接集成至嵌入式系统,实现低延迟推理。

2.3 神经网络算子的C语言实现机制

在神经网络推理引擎中,算子是计算图的基本执行单元。C语言因其高效性和对硬件的直接控制能力,成为实现底层算子的核心选择。
张量乘法算子的实现
以矩阵乘法为例,其C语言实现需手动管理内存布局与循环优化:

// 计算 C = A × B,假设A(M×K), B(K×N), C(M×N)
void matmul(float* A, float* B, float* C, int M, int K, int N) {
    for (int i = 0; i < M; i++) {
        for (int j = 0; j < N; j++) {
            float sum = 0.0f;
            for (int k = 0; k < K; k++) {
                sum += A[i*K + k] * B[k*N + j]; // 行主序访问
            }
            C[i*N + j] = sum;
        }
    }
}
该实现采用三重循环完成矩阵乘法,通过一维数组模拟二维张量存储。外层循环遍历输出行与列,内层累加对应点积。访存模式遵循C语言的行主序特性,有利于缓存局部性。
性能优化方向
  • 循环展开以减少分支开销
  • 使用SIMD指令加速向量运算
  • 分块计算提升Cache命中率

2.4 内存布局优化与低功耗推理策略

内存访问局部性优化
通过调整张量的存储顺序,将频繁访问的数据集中存放,可显著减少缓存未命中。例如,在卷积神经网络中采用 NHWC(Batch-Channel-Height-Width)格式替代 NCHW,提升内存带宽利用率。

// 优化前:NCHW 格式,跨步较大
float input_nchw[batch][channels][height][width];

// 优化后:NHWC 格式,利于连续读取
float input_nhwc[batch][height][width][channels];
上述变更使 SIMD 指令能更高效加载数据,尤其在边缘设备上降低延迟。
低功耗推理技术
  • 动态电压频率调节(DVFS):根据负载调整处理器频率;
  • 层融合(Layer Fusion):合并批归一化与激活函数,减少中间内存写入;
  • 稀疏推理:跳过零激活路径,降低计算密度。
这些策略协同作用,在保持精度的同时将能耗降低 30%~50%。

2.5 在资源受限设备上的实际部署案例

在物联网边缘节点中,常需将深度学习模型部署于计算能力有限的设备,如树莓派或STM32系列微控制器。为实现高效推理,通常采用模型压缩与量化技术。
模型轻量化策略
  • 剪枝:移除冗余神经元连接,降低参数量
  • 量化:将浮点权重转为8位整数,减少内存占用
  • 知识蒸馏:用大模型指导小模型训练
代码部署示例
// TensorFlow Lite Micro 中的推理调用
TfLiteStatus status = interpreter->Invoke();
if (status != kTfLiteOk) {
  error_reporter->Report("Invoke failed"); // 错误处理
}
该代码片段展示了在MCU上执行推理的核心流程。interpreter->Invoke()触发模型运行,返回状态码用于判断执行是否成功,适用于RAM小于256KB的设备。
性能对比
设备推理延迟(ms)内存占用(KB)
Raspberry Pi Zero120480
STM32H7350196

第三章:C语言部署工具链详解

3.1 TensorFlow Lite for Microcontrollers源码剖析

TensorFlow Lite for Microcontrollers(TFLM)专为资源受限设备设计,其核心位于精简的解释器与内核实现。
核心架构组成
TFLM 采用静态内存分配策略,避免运行时动态申请。主要模块包括:
  • Interpreter:负责模型解析与调度
  • OpResolver:操作符查找表,映射算子至具体实现
  • MicroAllocator:管理张量内存布局
关键代码片段分析

const tflite::Model* model = tflite::GetModel(g_model_data);
tflite::MicroInterpreter interpreter(model, resolver, tensor_arena, kTensorArenaSize);
上述代码加载 flatbuffer 格式的模型。g_model_data 为编译进固件的模型数组;tensor_arena 是预分配的连续内存块,用于存放张量数据,大小由 kTensorArenaSize 决定,典型值为 2–30 KB。
内存优化策略
通过静态内存规划,TFLM 在启动阶段完成所有内存分配,消除堆碎片风险,确保实时性。

3.2 使用CMSIS-NN加速推理的实践方法

在Cortex-M系列微控制器上部署深度学习模型时,利用ARM提供的CMSIS-NN库可显著提升推理效率。该库针对嵌入式场景优化了神经网络算子,尤其在卷积、池化和激活函数等计算密集型操作中表现突出。
集成CMSIS-NN到项目
首先需在工程中引入CMSIS-NN头文件并链接库文件。使用如下代码调用优化后的卷积函数:

arm_cnn_convolve_s8(&conv_params, &input_data, &filter_data,
                    &bias_data, &output_data, &quant_params,
                    &kernel_size, &stride, &padding);
该函数对8位整型张量执行卷积运算,通过量化降低内存带宽需求。参数`conv_params`定义卷积行为,如输入输出通道数;`quant_params`控制激活值的量化缩放。
性能优化策略
  • 采用权重量化(INT8)减少模型体积
  • 利用CMSIS-NN内置的ReLU与池化融合提升流水线效率
  • 对输入数据进行内存对齐以加快加载速度
通过合理配置参数并结合硬件特性,可在有限资源下实现高效推理。

3.3 自定义算子的C封装与集成技巧

在深度学习框架中,自定义算子常需通过C语言封装以实现高性能计算。为确保兼容性与效率,应遵循标准C接口规范,并导出符合调用约定的函数。
接口设计原则
封装时需暴露初始化、执行和销毁三个核心函数。参数应使用指针传递,避免数据拷贝开销。

extern "C" void custom_op_forward(float* input, float* output, int size) {
    for (int i = 0; i < size; ++i) {
        output[i] = input[i] * 2.0f + 1.0f; // 示例:仿射变换
    }
}
上述代码实现了一个前向传播函数,对输入张量逐元素执行 $ y = 2x + 1 $ 变换。`extern "C"` 防止C++命名修饰,确保符号可被外部链接;参数均为裸指针,适配多数运行时环境。
集成关键步骤
  • 编译为共享库(.so/.dll)
  • 注册算子符号至运行时系统
  • 确保内存对齐与生命周期管理

第四章:端到端部署实战演练

4.1 语音唤醒模型的C语言移植全过程

在嵌入式设备上实现语音唤醒功能,需将训练好的模型从Python环境迁移至C语言运行时。首要步骤是提取模型参数,将权重和偏置以数组形式固化到头文件中。
模型结构映射
将神经网络层转换为C函数调用,例如全连接层可表示为矩阵乘加运算:

float fc_layer(float *input, float *weights, float *bias, int in_dim, int out_dim) {
    float output[out_dim];
    for (int i = 0; i < out_dim; i++) {
        output[i] = bias[i];
        for (int j = 0; j < in_dim; j++) {
            output[i] += input[j] * weights[i * in_dim + j];
        }
    }
    return output;
}
该函数实现输入向量与权重矩阵的乘法运算,bias数组提供偏移修正,in_dim和out_dim定义张量维度。
内存优化策略
  • 使用const关键字将参数存入ROM
  • 通过定点化压缩浮点数为int16_t类型
  • 复用中间缓冲区减少RAM占用

4.2 在STM32上运行图像分类模型

在资源受限的嵌入式设备上部署深度学习模型是边缘智能的关键挑战。STM32系列微控制器凭借其低功耗与高实时性,成为部署轻量级图像分类模型的理想平台。
模型优化与转换
使用TensorFlow Lite将训练好的模型转换为量化后的`.tflite`格式,显著降低模型体积与计算需求。量化过程将浮点权重转为8位整数,提升推理速度并减少内存占用。
部署至STM32
通过STM32CubeMX配置AI工具包,导入转换后的模型生成C代码接口。模型以静态数组形式嵌入Flash,输入张量由摄像头采集的图像数据填充。
ai_i8 input[AI_NETWORK_IN_1_SIZE_BYTES] = {0}; // 输入缓冲区
ai_i8 output[AI_NETWORK_OUT_1_SIZE_BYTES] = {0}; // 输出缓冲区
ai_network_run(network, input, output); // 执行推理
该代码片段调用生成的AI库函数进行同步推理,input为预处理后的图像数据,output存储分类得分,network为加载的模型上下文。
参数说明
AI_NETWORK_IN_1_SIZE_BYTES输入张量字节数(如224×224×3)
AI_NETWORK_OUT_1_SIZE_BYTES输出类别置信度总大小

4.3 性能分析与内存占用调优

性能瓶颈识别
在高并发场景下,应用常因内存泄漏或低效算法导致响应延迟。使用 pprof 工具可采集 CPU 与堆内存数据,定位热点函数。
import _ "net/http/pprof"
// 启动后访问 /debug/pprof/ 查看分析数据
通过 HTTP 接口暴露运行时指标,结合 go tool pprof 分析调用栈,识别耗时操作。
内存优化策略
减少临时对象分配是关键。采用对象池(sync.Pool)可显著降低 GC 压力:
  • 复用缓冲区减少内存申请
  • 避免逃逸到堆的小对象
  • 预估容量减少 slice 扩容
优化项优化前 (MB)优化后 (MB)
堆内存峰值450210

4.4 固件集成与持续部署流程设计

在嵌入式系统开发中,固件的高效集成与自动化部署是保障迭代速度与稳定性的核心环节。通过构建标准化的CI/CD流水线,可实现从代码提交到固件烧录的全流程自动化。
自动化构建流程
使用GitLab CI或Jenkins触发编译任务,结合Yocto或CMake生成目标平台固件镜像:

build-firmware:
  script:
    - cmake -DCMAKE_TOOLCHAIN_FILE=arm-toolchain.cmake .
    - make firmware
    - tar -czf firmware.tar.gz bin/app.bin config/
该脚本配置交叉编译环境,输出压缩固件包,便于后续分发。
部署阶段与设备同步
  • 构建完成后自动推送固件至私有对象存储
  • 设备端通过MQTT接收版本通知并校验哈希值
  • 支持差分更新与回滚机制,确保升级安全
阶段工具链输出物
编译CMake + GCC ARMbin/app.bin
打包Tar/Gzipfirmware.tar.gz
发布MinIO + MQTT远程部署

第五章:未来趋势与生态展望

云原生与边缘计算的深度融合
随着5G网络普及和物联网设备激增,边缘节点正成为数据处理的关键入口。Kubernetes已通过K3s等轻量发行版向边缘延伸,实现中心云与边缘端的统一编排。例如,在智能制造场景中,工厂部署的边缘集群实时处理传感器数据,仅将聚合结果上传至中心平台。
  • 边缘AI推理任务响应延迟降低至10ms以内
  • KubeEdge支持跨地域设备状态同步
  • 服务网格Istio在边缘启用局部流量控制
开发者体验的持续优化
现代CI/CD流程正集成更多智能化能力。以下Go代码展示了如何利用OpenTelemetry自动注入追踪信息:

func setupTracer() {
    exp, err := stdout.NewExporter(stdout.WithPrettyPrint())
    if err != nil { panic(err) }
    tp := trace.NewTracerProvider(
        trace.WithSampler(trace.AlwaysSample()),
        trace.WithBatcher(exp),
    )
    otel.SetTracerProvider(tp)
}
工具用途典型部署周期
Terraform基础设施即代码8-15分钟
Argo CDGitOps持续交付2-5分钟
安全左移的实践演进
DevSecOps不再局限于扫描环节,而是嵌入开发全生命周期。SAST工具如Semgrep已在IDE插件中实现实时检测,配合OPA(Open Policy Agent)对Kubernetes资源配置进行合规性校验,大幅减少生产环境漏洞暴露面。
超详细版:ESP32运行TinyML模型教程 手把手教你如何在ESP32上部署TinyML模型,实现轻量级AI推理。结合esp32接入大模型趋势,探索边缘计算与智能融合的无限可能,适合物联网与嵌入式开发者学习实践。 阅读详情

相关推荐

TinyML落地全攻略:模型压缩、部署与性能优化实战

边缘计算与嵌入式AI的快速发展,让越来越多的智能应用从云端走向微控制器(MCU)端。TinyML作为在低功耗、资源受限设备上运行机器学习模型的技术,其核心挑战不在于算法创新,而在于工程化落地。模型量化、剪枝与知识蒸馏是压缩模型体积、适配MCU内存的关键手段,其中量化感知训练能有效缓解精度损失。部署环节需结合TFLite Micro等工具链,精细管理Tensor Arena并利用CMSIS-NN加速算子,从而实现毫秒级推理。这一技术路径在工业振动监测、关键词唤醒和可穿戴设备等场景中价值显著,既满足实时性要求,

weixin_34262482的博客 566

在STM32F103单片机上跑通AI模型:为什么选正弦波作为Hello World?

摘要 本文回应了关于在STM32F103上使用TinyML实现正弦波函数的质疑,解释了选择sin(x)作为入门案例的三个原因:1) 作为回归问题的典型示例,模型结构简单且训练收敛容易;2) 误差可视化直观,便于初学者理解;3) 数据集生成方便,无需依赖真实传感器。同时论证了在STM32F103有限的资源(72MHz主频、256KB Flash、48KB RAM)上运行TinyML模型的可行性,实测显示仅需约151.7KB Flash和5.03KB RAM,资源占用非常轻量。

1379

工业AI落地四步法:从数据采集到闭环执行的实战路径

工业人工智能不是云端大模型的简单迁移,而是面向产线实时控制的轻量化智能决策系统。其核心原理在于融合边缘计算、时序数据分析与协议语义对齐,在毫秒级响应约束下实现设备自主调节。技术价值体现在降低停机损失、提升缺陷识别前置性、增强工艺稳定性等可量化收益。典型应用场景覆盖光伏叠焊、汽车焊装、食品灌装等高实时性制造环节,尤其适用于PLC旁部署、TSN同步、OPC UA/MQTT接入等真实工况。本文聚焦Big Data数据血缘治理与AI轻量模型(如LSTM、TinyML)在工业现场的协同落地,提供可复用的痛点锚定、数据

love android 501

STM32嵌入式部署深度学习模型:TinyML实战

本文介绍了如何在星图GPU平台上自动化部署深度学习项目训练环境镜像,高效构建TinyML模型开发与验证环境。该镜像支持STM32等微控制器上的轻量化模型训练与量化,典型应用于嵌入式语音唤醒、低分辨率图像分类等边缘AI场景,助力资源受限设备实现离线智能决策。

weixin_33298352的博客 1017

从智能车竞赛获奖名单看嵌入式AI与控制系统技术趋势与备赛策略

嵌入式系统与自动控制是机器人及智能硬件领域的核心技术基础,其原理在于通过微控制器实时采集传感器数据,经特定算法处理,最终驱动执行机构完成预定任务。这项技术的核心价值在于实现设备自主感知、决策与执行,是提升系统智能化与自动化水平的关键。在自动驾驶、工业机器人、智能物联网等广泛场景中,嵌入式控制技术都扮演着至关重要的角色。全国大学生智能汽车竞赛正是该技术体系的一个典型实践平台,其年度获奖名单深刻反映了当前技术热点,如嵌入式AI(TinyML)与传感器融合的应用已成为提升系统性能的主流方向。通过分析名单中顶尖队伍

weixin_33894640的博客 351

Cortex-M嵌入式开发实战:从AI部署到硬件级避坑指南

微控制器(MCU)是嵌入式系统的核心载体,其性能边界与工程落地能力直接决定智能终端的可行性。理解Cortex-M架构原理,不仅涉及内核特性与中断机制,更需掌握内存管理、低功耗调度、AI模型轻量化等关键技术价值。在资源受限场景下,TinyML、CMSIS-NN、FreeRTOS协同优化成为主流应用方向;而真实项目中频繁遭遇的Cache一致性、DMA数据错乱、启动流程异常等问题,恰恰暴露了从理论到量产的关键断层。本文聚焦STM32系列与Arm Compiler 5.06u7等工业级工具链,结合蓝桥杯真题与宠物识

weixin_33831673的博客 465

模型压缩不再难:手把手教你部署TinyML到STM32微控制器

掌握嵌入式 AI 的模型压缩与部署不再困难,手把手教你将TinyML高效部署到STM32微控制器。涵盖模型量化、剪枝与C代码生成等核心方法,适用于低功耗物联网场景,实现边缘端实时推理。资源占用少、运行快,嵌入式AI落地实战指南,值得收藏。

DevPath的博客 2279

苹果AI灰度测试、Grok安全漏洞与罗马仕重组背后的AI落地三重断层

AI大模型正从技术概念加速迈向终端落地,但其产业化进程面临合规性、内容安全与硬件适配三重基础挑战。原理上,AI落地需协同算法能力、算力载体与监管框架,缺一不可;技术价值体现在端云协同效率提升、中文语义对齐精度增强及边缘智能响应速度优化;典型应用场景覆盖智能终端(如iOS国行AI)、开源模型中文内容治理(如Grok RLHF加固)、以及传统硬件AI化升级(如充电宝能源调度)。当前产业瓶颈集中于中文价值观标注体系缺失与AI-ready芯片生态不成熟——这正是苹果灰度测试受阻、Grok低俗内容频发、罗马仕启动‘重

weixin_30535843的博客 330

microduck:嵌入式AI最小可行单元的硬件选型与端侧推理实践

嵌入式AI是指在资源受限的微控制器上直接运行轻量级机器学习模型的技术路径,其核心原理是通过模型量化、算子裁剪和内存优化,在MCU级硬件上实现端侧推理。该技术显著降低数据传输延迟与云端依赖,提升隐私性与实时性,广泛应用于智能传感、边缘视觉和语音唤醒等场景。microduck作为这一领域的典型实践范式,聚焦ESP32-S3平台与OV2640图像传感器组合,强调全链路可控性与教学可拆解性;它不追求峰值算力,而以确定性工程为目标,将tflite-micro部署、SPI Flash模型固化、传感器驱动调试等关键环节显

weixin_34326429的博客 318

小案例:利用图床自动化批量上传图片并获取图片链接

用python爬虫写了一个小脚本,用来自动上传图片到图床,然后返回链接,我们只需直接复制链接就可以。(需要安装Requests库) 因为不同图床需要提交的POST表单不一致,所以在这里我用ImgURL图床做示范,如果大家有需求,可自行修改代码。使用脚本的时候,我们只需把需要上传的图片和这个脚本放在同一个文件夹中,然后运行脚本,稍作等待,看到提示时就可以在脚本运行文件夹中发现一个名为“图片链接地址.txt”的文件,里面就是图片链接啦! 四、图片链接地址.txt(单张图片):...

采菊东篱下,Python满乾坤! 4409

西工大noj100题python2024第一季1-10

【代码】西工大noj100题python2024第一季1-10。

weixin_70523540的博客 1797

龙芯1C100:面向工业物联网的国产MIPS嵌入式SoC

嵌入式SoC是边缘智能终端的核心载体,其架构选择、外设集成与系统级优化直接决定物联网设备的实时性、可靠性和量产可行性。基于MIPS指令集的龙芯1C100并非传统MCU,而是专为楼宇自动化等工业场景设计的低功耗高可靠SoC,具备原生双I²C控制器、硬件加速Display Subsystem(DSS)及完整安全启动链。它支撑OLED人机交互、蓝牙4.0本地组网与轻量级LoongLink协议栈,在-10℃~60℃宽温、强电磁干扰环境下实现毫秒级响应与7×24小时稳定运行。该方案已在智能门禁、老旧小区改造等真实工程

weixin_33461476的博客 83

改进爬山算法之六:随机重启爬山算法(Random-Restart Hill Climbing,RRHC)

随机重启爬山算法(Random-Restart Hill Climbing,RRHC)是爬山算法的一种改进策略,是一种启发式搜索算法,旨在通过随机重启来克服传统爬山算法容易陷入局部最优解的局限性,并增加找到全局最优解的概率。随机重启爬山算法通过在多次运行中不断尝试不同的初始解,并在每次运行中执行标准的爬山算法,最终选择所有运行中找到的最佳解作为最终结果。(1)计算复杂度:由于需要多次运行爬山算法,因此算法的计算复杂度可能较高,特别是在解空间较大或每次迭代需要较长时间的情况下。

搏博的专栏 2205

CMU机器学习系三十年演化史:从理论建模到人类中心的范式跃迁

机器学习(ML)已从计算机科学中的辅助方法,发展为重塑问题定义、系统架构与社会价值的核心范式。其本质是通过数学建模理解‘学习’的认知过程,并在数据生成机制、泛化边界与人机协作约束中持续演进。技术价值不仅体现于准确率或算力效率,更在于可解释性、鲁棒性与跨领域适配能力。典型应用场景涵盖医疗诊断、智能交通、农业感知等高可靠性需求领域,尤其强调模型失败时的归因能力与人工干预接口。CMU机器学习系作为全球首个独立建制的ML学术部门,完整呈现了这一演化逻辑——从PAC学习理论奠基,到系统级工程升维,最终锚定人类中心的价

wyjvip333的专栏 429

使用abagen工具箱获取基于脑区的基因表达矩阵

脑区模板定义了您感兴趣的脑区的空间位置。abagen提供了一些预定义的脑区模板,您可以选择使用,也可以使用自定义的脑区模板。它提供了一种简便的方式来获取基于脑区的基因表达矩阵。abagen需要使用Allen脑图谱数据来获取基因表达矩阵。您可以使用abagen内置的下载功能来获取这些数据。这就是使用abagen工具箱获取基于脑区的基因表达矩阵的详细步骤。通过按照上述步骤操作,您可以轻松获取并使用Allen脑图谱数据中的基因表达信息。一旦您加载了脑区模板,您可以使用abagen来获取基于脑区的基因表达矩阵。

web_bug407的博客 1326

SpringBoot一次请求中缓存数据,请求结束就清除的4种方法,你会几种?

通过以上四种方法,你可以在 SpringBoot 的一次请求中缓存数据,并在请求结束后自动清除这些缓存数据。使用 ThreadLocal:适用于需要跨多个方法调用的缓存数据,灵活性高,但需要注意内存泄漏问题。使用 AOP:适用于全局性的缓存管理,代码更加优雅,但需要对 AOP 有一定的了解。使用 ServletRequestListener:适用于简单的请求生命周期管理,配置简单,但功能相对有限。使用 HttpServletRequest 的 setAttribute 和 getAttribute。

java专栏 1295

分享8 个TinyML框架和兼容硬件平台(TensorFlow Lite、Edge Impulse、PyTorch Mobile、uTensor等)

本文探讨了 8 个最著名的 TinyML 框架,详细介绍了它们的主要功能和局限性。在这些平台中,TensorFlow 以其出色的灵活性脱颖而出,支持 20 多个硬件平台,例如 Arduino Nano、Sparkfun Edge 和 STM32F746 Discovery Kit。它适用于一系列目标应用,包括图像和音频分类、对象检测、姿势估计、语音和手势识别。

import_2333的博客 5353

【APM】在Kubernetes中,使用Helm安装Grafana 9.5.1

Grafana是一款流行的开源数据可视化和分析平台,它特别擅长处理时序数据,即随时间变化的数据,因此在监控系统性能、应用程序指标、物联网(IoT)设备数据等领域有着广泛的应用。

CN_Eden 1200

关于TinyML的认识

TinyML是好药,但绝不是“银弹”!为什么呢?我给大家分析分析, TinyML这篇文章主要宣贯的微端智能应用未来几年是大的爆发点,但我认为其实本质是芯片博弈革命,我之前也多次讲过芯片的发展其实分两个方向,一个是通用芯片,一个是专用芯片,专用芯片面向特定应用场景更高效,因为高效,所以功耗就低(挖矿机算一个面向专项应用的机器,但还是用的通用芯片,功耗并不低),对于微端智能应用发展,一定是从...

cavern1628的专栏 3419

鸿蒙开发实战项目(九十二):HUAWEI Health血压测量

是华为开发的用于运动健康领域的一个开放平台, 三方APP可以借助HUAWEI Health开放平台提供的。

斌擎科技 1131

YOLO26改进策略【小目标改进】| 添加专用于小目标的检测层 附YOLOv1~YOLOv11的检测头变化详解

在目标检测领域,小目标检测一直是一个具有挑战性的问题。算法以其高效快速的特点受到广泛关注,然而在面对小目标时,仍存在一些局限性。本文将介绍如何在中添加小目标检测层,以提高对小目标的检测能力。原始模型结构如下: 二、有效特征层对应的检测头类别 2.1 P3/8 - small检测头 原始模型中的对应的检测头主要用于检测相对较小的目标。其特征图大小相对较大,空间分辨率较高。 适合检测尺寸大概在到像素左右的目标。 2.2 P4/16 - medium检测头 这个检测头对应的经过了更多的下采样操作,相比P3/

Limiiiing的博客 349

TinyML 嵌入式AI:在256KB RAM上运行深度学习的极致工程

TinyML技术概述与市场前景 TinyML是一种在资源受限的微控制器(MCU)上部署机器学习模型的技术,适用于64KB-512KB RAM、主频≤200MHz的硬件(如Cortex-M、ESP32等)。2023年起,技术从实验阶段迈向工程化落地,TensorFlow Lite Micro等框架成熟,市场规模预计2025年达12亿美元,2030年增至50亿美元(CAGR 33%)。核心应用包括语音唤醒、工业异常检测、手势识别等,通过量化、剪枝等技术将模型压缩至KB级,实现低功耗(<10mW)、实时响应(<0

朝气蓬勃 920

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

内存资源紧张?教你3步完成TinyML模型的C级优化,效率提升90%

内存资源紧张?教你3步实现TinyML C语言内存优化,适用于边缘设备部署。通过模型剪枝、量化与内存池管理,显著降低占用,提升运行效率90%。方法实用高效,值得收藏。

QuickSolve的博客 938

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

嵌入式单片机开发实战指南: 从RISC-V到TinyML全栈技术

2025年,嵌入式系统正经历开源架构与边缘智能的双重革命。 RISC-V指令集打破ARM垄断,国产芯片 如兆易创新GD32VF103、先楫HPM6750实现工业级可靠性;TinyML技术让STM32L4系列在1MB内  存下运行神经网络;低功耗设计使物联网节点电池寿命突破10年。本文将从架构选型→开发环境→核心 技术→实战项目,全方位拆解嵌入式开发的热门技术,带你从入门到精通。

Mumyi_的博客 2123

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

社区分享 | 从零开始学习 TinyML(一)

TinyML 简介 1. 概要 Pete Warden 与Daniel Situnayake 合著了一本介绍在 Arduino 和超低功耗微控制器上如何运行 ML 的书,TinyML:Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers,这本书由 O’Reilly 于 2019 年 12 月 13 号出版。 我作为国内 IoT 和 ML 两个方向的 GDE,对 AI 在嵌...

linux内核探索 2万+

【独家】全球仅少数团队掌握的TinyML部署技术:C语言实现超小CNN模型实战

掌握TinyML C语言CNN模型轻量化部署核心技术,解决边缘设备算力受限难题。适用于物联网、嵌入式视觉等场景,通过C语言手动优化模型推理,实现低内存、高效率部署。方法实用,性能稳定,值得收藏。

InstrWander的博客 661
上一篇: 无人机避障卡顿崩溃?C语言内存管理优化的4个致命细节
下一篇: 从零开始搭建传感器校准系统,C语言高效实现IMU校正全流程
SimProceed
博客等级 码龄1年 146粉丝 2011原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值