当前位置: 首页 > news >正文

026、模型量化基础:浮点与整数量化

026 模型量化基础:浮点与整数量化

一次让我通宵的部署事故

去年做的一个智能门锁项目,MCU是Cortex-M4内核,128KB SRAM,1MB Flash。模型在PC上跑FP32精度,识别准确率97.3%,完美。烧到板子上,内存直接爆了——模型权重占掉600多KB,Flash也塞不下。当时心想,这不就是典型的“PC上跑得欢,嵌入式就翻车”吗?

后来用TFLite Micro做量化,模型压缩到原来的四分之一,内存占用降到80KB,推理速度反而快了3倍。但代价是什么?准确率掉到了94.1%。客户说“门锁识别不准,你赔我误报费”。这就是量化的真实世界——没有免费的午餐,只有权衡的艺术。

浮点数在MCU上的奢侈

先看一个残酷的事实:Cortex-M0/M3/M4都没有硬件FPU(浮点运算单元),M4F才有。没有FPU的芯片,跑一次浮点乘法要调用软件库,几十个指令周期。而整数乘法,一个周期搞定。

FP32(单精度浮点)占用4字节,范围约±3.4×10³⁸,精度7位有效数字。但在嵌入式场景,我们真的需要这么宽的动态范围吗?传感器数据通常是12位ADC,范围0-4095;权重经过训练后,分布往往在[-1, 1]之间。用32位去表示一个只需要8位精度的数,就像用卡车运一颗鸡蛋。

量化的核心思想:用更少的比特数去近似表示浮点数,同时尽量保留原始信息。最常见的方案是INT8量化——把FP32映射到[-128, 127]的整数范围。

量化参数:scale和zero_point

http://www.jsqmd.com/news/906879/

相关文章:

  • Win11 Beta版更新总报错0xc1900101?别急着重装,试试这个关闭设备加密的完整流程
  • 别再让xray扫出你的源码!手把手教你排查与修复Webpack项目中的sourcemap泄露
  • 【原创解锁】叫叫识字 趣味启蒙识字 动画学字超有趣
  • 移动硬盘盘符突然从E变F?别慌,用Windows磁盘管理5分钟改回来
  • 彻底告别自动更新!Win11系统下Chrome离线安装与永久禁用GoogleUpdate服务指南
  • TTS 推理速度为什么这么慢:序列长度问题与扩散模型的计算瓶颈
  • 用Python+NumPy手把手实现一个马尔可夫链预测模型(附完整代码)
  • 六边形网格表面码的硬件优化与缺陷处理方案
  • 北京小程序开发周期全解析:从需求到上线的详细时间指南
  • 从Simulink到虚幻引擎:一个自动驾驶仿真小白的踩坑与配置全记录
  • 技术项目避坑指南:如何识别并避免需求、方案与团队的错配
  • 告别臃肿GUI:用feh在Linux终端高效管理图片的5个实用技巧
  • but this cluster currently has 8000/8000 maxinum shards open:es shard满
  • Unity数智人项目实战:手把手教你用C++源码实现AI语音交互(IL2CPP后端配置)
  • 从Windows转投Deepin?手把手教你用Ventoy制作多系统启动盘,一次搞定安装
  • 不只是好看:聊聊MydockFinder如何提升我的Windows工作效率
  • 从光学干涉到代码:用OpenCV理解MTF算法背后的物理原理(保姆级图解)
  • 027、模型剪枝:结构化与非结构化剪枝
  • 人形机器人谐波关节模组驱动齿轮超高耐磨复合材料注塑解决方案
  • 别再折腾了!用Ubuntu 20.04的‘附加驱动’工具一键安装NVIDIA显卡驱动
  • 阴阳师自动化脚本终极指南:一站式智能游戏辅助实战手册
  • 不止于建模:用同元软控MWORKS.Syslab做数据分析和机器学习,一个被低估的科学计算环境
  • 通过Python快速为你的安卓项目接入Taotoken多模型服务
  • 通知文件加Logo抬头怎么才是透明底?logo抠图去底色秒出
  • 别再傻傻分不清了!Linux系统里lib、lib64、lib32文件夹到底有啥用?
  • CANN runtime 内存池——高效显存管理策略
  • MyBatis-Plus 进阶实战|告别只会CRUD!搞定企业级高频场景
  • 基于Arduino与3D打印的BB-8球形机器人制作全攻略
  • Pythonio字节流与文本流
  • 徐州地铁旁高端写字楼