神经网络量化入门--Add和Concat

本文介绍了神经网络量化中的EltwiseAdd和Concat操作的量化处理,包括EltwiseAdd的rescale过程和Concat的无损量化策略。量化过程中涉及到的scale转换和offset操作可能引入精度损失,需要关注输入范围以减小误差。

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

(本文首发于公众号)

好久没更新了,一方面是因为工作繁忙,另一方面主要是懒。

之前写过几篇关于神经网络量化的文章,主要是对 Google 量化论文以及白皮书的解读,但有一些细节的问题当时没有提及。这篇文章想补充其中一个问题:关于 ElementwiseAdd (简称 EltwiseAdd) 和 Concat 的量化。

EltwiseAdd量化

EltwiseAdd 的量化主要是在论文的附录里面提及的。过程不是太复杂,如果了解量化的基本原理的话,完全可以自己推导出来。

回忆一下量化的基本公式:
r = S ( q − Z ) (1) r=S(q-Z) \tag{1} r=S(qZ)(1)
(看不懂的可以再参考一下我之前的文章)

这里面 r r r 是实数域中的数值 (一般是 float), q q q 则是量化后的整型数值 (常用的是 int8)。

EltwiseAdd 就是对两个 tensor 的数值逐个相加。假设两个 tensor 中的数值分别是 r 1 r_1 r1 r 2 r_2 r2,相加得到的和用 r 3 r_3 r3 表示,那全精度下的 EltwiseAdd 可以表示为:
r 3 = r 1 + r 2 (2) r_3 = r_1 + r_2 \tag{2} r3=r1+r2(2)
用量化的公式代入进去后可以得到:
S 3 ( q 3 − Z 3 ) = S 1 ( q 1 − Z 1 ) + S 2 ( q 2 − Z 2 ) (3) S_3(q_3-Z_3)=S_1(q_1-Z_1)+S_2(q_2-Z_2) \tag{3} S3(q3Z3)=S1(q1Z1)+S

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值