AI TALK | 神经网络计算加速:模型量化与低功耗IOT设备部署

本文探讨了神经网络在IOT设备部署时遇到的存储和计算挑战,重点介绍了模型量化的基本原理和方法,包括均匀量化与非均匀量化,以及量化训练(QAT)的技术细节。量化能降低内存占用并提高推理速度,适用于低功耗设备。文章还分享了系统优化、模型优化和调试技巧,以实现高效部署。
摘要由CSDN通过智能技术生成

神经网络由于参数量大,运算量大,往往在部署到IOT设备时会碰到储存空间不够,运算时长过长或者量化精度不够的问题。

针对这些问题,本文介绍了神经网络模型在轻量级设备的部署技巧,具体内容包括神经网络模型量化的基本原理和主要方法以及部分低功耗IOT设备上模型部署的实例与技巧

量化基本原理

量化本质上是数值范围的一种调整,目前主流的神经网络的量化主要是将fp32的一组数据映射到int8的范围内(也有研究int6 int4甚至int2的 本文不做讨论),(如下图数据所示)。且由下表格可知,int8的表示范围和步长均不如fp32,会造成精度损失,而如何降低精度损失,正是本文想要说明的主要问题之一。

其次我们需要了解的是为什么要进行量化,它的优势是什么

由于神经网络对于噪声是不敏感的,因此可以对其进行量化,好的量化并不会造成精度的损失,而且可以实现相比于浮点模型大约1/4的内存占用。此外,由于量化后的模型大部分是整数类型的,在使用NPU进行推理的时候往往会比浮点类型快很多。此外,相较于浮点运算,定点int8每次计算的能量消耗少很多,而对于低功耗嵌入式设备来说是非常关键的。

量化原理可以分为两大类,分别是非均匀量化均匀量化非均匀量化主要指的是,量化的步长不是均匀的,而均匀量化指的是量化的步长是均匀的。两种量化对比如下图所示。

对于均匀量化,主要可以用以下的公式1来表示。式中x表示浮点的输入, x_int表示量化的输出,可以看到对于的每个输入,我们需要一组参数s与z来表示量化之后的数值。由于取整操作的存在,量化之后的数值与量化之前的数值会有误差(如公式2),因此如何根据实际情况选取s与z就至关重要。公式3表示的是将公式1代入公式2得到的量化反量化公式,在量化后训练中会经常用到。

非均匀量化目前主流的有两类,一类是VPU和DSP中经常使用的,将FP32转成FP16进行计算的量化另一类就是指数量化

这一类VPU和DSP中经常使用的,将FP32转成FP16进行计算的量化方式,可以表示的精度和范围,优点是可以表示的精度和范围比int8要大。然而

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值