论文笔记:Quantizing deep convolutional networks for efficient inference: A whitepaper

本文深入探讨深度神经网络定点量化方法,涵盖量化器设计、训练特殊处理、预测实验及定点模型训练等关键环节,旨在降低计算量与带宽消耗,提升模型部署效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

地址:https://arxiv.org/abs/1806.08342

这篇白皮书统一介绍了当前将网络进行定点化的方法。下面将看到的重点记录下来。
为了降低深度神经网络的计算量以及带宽(内存占用量),一种简单可行的方式就是将浮点网络(网络权重都是float类型数值)转换成定点网络(网络权重都是或者部分是int8类型)具体来说,这么做的优势在于:

  1. 不用改变网络结构,不用重新训练
  2. 单个int8定点数的内存占用就已经是float32这种浮点数的1/4。显然这样的定点化转换能够降低模型的占用
  3. 降低运行时所需的带宽(内存占用量),降低功耗(因为很多时候功耗很大部分取决于内存的访问)
  4. 便于部署:目前许多平台都能为定点数的计算提供加速支持

量化器(Quantizer)的设计
这里说的量化器实际上做的就是指浮点数(取值范围 [ x m i n , x m a x ] [x_{min}, x_{max}] [xmin,xmax])与定点数(取值范围 [ 0 , N l e v e l s − 1 ] [0, N_{levels}-1] [0,Nlevels1],只能取整数)之间的映射。

Affine(Asymmetric quantizer)

这里我们只考虑线性映射:也就是包含2个参数,尺度(scale) Δ \Delta Δ和零点 z z z。其中

  • z z z是一个整数,并且需要保证零点的量化是没有损失的(我理解是一个数 + 零点还是得等于它本身,有点抽象代数的意思)
  • 因此 [ x m i n , x m a x ] [x_{min}, x_{max}] [xmin,xmax]需要做一个松弛,使得它能够包含数值0,如 [ 2.1 , 3.5 ] [2.1, 3.5] [2.1,3.5] 需要松弛至 [ 0 , 3.5 ] [0, 3.5] [0,3.5]
  • 量化的过程如下表示:
    x i n t = r o u n d ( x / Δ ) + z x Q = c l a m p ( 0 , N l e v e l s − 1 , x i n t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值