QNN模型网络精度对齐指南
[TOC]
概述
文章参考:https://ecloud.baidu.com/index.html#/team/572907534
文章参考:https://ecloud.baidu.com/index.html#/team/572907534
会议讨论
- x_scale y_scale 其实高通没有回答
Weight (量化反量化)
Activation
激活层
两种量化损失:
位置 Weight量化(8比特量化)
节点输出 Activation
余弦相似值
最好是
怎么去锁定Activation。
CPU FP32
SQNR是什么公式??
量化手段:
量化和反量化
确认是什么损失导致:
perchannel
如果是Activatiion导致。设置成16bit.
训练更稳定。
1.建议去掉BN层
- 中段加速器,对weight的要求比较高。
对齐32通道 nach
10通道的
fill成一个的卷积
HMX的高速硬件算了。不管拆开还是不拆开
问题:
怎么去做参考:
1.
QNN 模型量化的转换问题
去掉SE block
1.算法模型结构中的SE block 算法结构对QNN量化不友好,有大量的精度损失;
类似于图中的模型结构:GlobalAveragePool+Conv(1x1) +Relu+Conv(1x1)+HardSigmoid。这样的结构频繁输出1x1的卷积。对QNN的量化不是很友好。推动算法去掉这样的卷积结构。
In all, this structure causes the whole accuracy loss. I just have one idea but may not useful.
1 Avoid generating (1,1,1,x) output, especially for conv.
I think the main solution sto avoid the loss is do not design such structure, you may try other sstructure to implement “Channel Attention” function.
Weight 接近于0
高通精度定义为什么要设置0.01
问题主要出现在Attention
BN算子
先算卷积 再算BN。
https://www.cnblogs.com/jermmyhsu/p/13508382.html
裁剪
裁剪到32 或者 64
weight的为0
self-attention
Max- Min的参数
V1.12的版本在
V1.12的ES2的