tensorflow 模型小型化_简介_昇腾CANN(20.1)_推理场景_开发辅助工具指南_模型小型化工具使用指南(TensorFlow)_概述_华为云...

基于calibration的量化

基于calibration的量化是指借助少量校准数据,找到数据和权重的量化因子,对数据和权重进行量化的方案。量化过程请参见基于calibration的量化。基于calibration的量化不支持多个GPU同时运行。

当前支持量化的层为:全连接层(MatMul),卷积层(Conv2D,dilation为1)、Depthwise卷积层(DepthwiseConv2dNative,dilation为1)、反卷积层(Conv2DBackpropInput,dilation为1)以及平均下采样层Pooling。

校准数据集

由于数据的量化参数的确定过程(calibration过程),算法会把校准集中的每一份数据作为输入,积攒下每个需要量化的层/Operations的对应输入数据,根据积攒下的数据作为量化算法的输入数据来确定量化参数。由于量化参数的确定和校准数据集的选择相关,因此量化后模型的精度也和校准数据集的选择相关,推荐使用验证集的子集作为校准数据集。

数据量化

数据量化是对每个要量化的层/Operation的输入数据进行统计,每个层/Operation计算出最优的一组scale和offset(通过原始高精度数据d_float计算得到UINT8数据,q_uint8的转换公式为q_uint8 = round(d_float/scale) - offset,其中scale为浮点数的缩放因子,offset为偏移量)。

数据是模型推理计算的中间结果,其数据的范围和输入相关,因此需要使用一组参考输入(校准数据集)作为激励,从而记录下来需要量化的层/Operations的输入数据,用于搜索得到量化参数(scale和offset)。由于在做数据calibration的过程中,需要占用额外的存储空间(显存/内存)来存储用于确定量化参数的输入数据,所以对于显存/内存的占用比仅推理的过程要高,额外占用空间的大小和calibration过程中的batch_size* batch_num正相关。

权重量化

在进行模型推理加速时模型的权值已经确定,数值的范围也已经确定,因此可以直接根据权值的数据范围进行量化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值