QAT的使用,您这边是自己研究还是有对应的FAE支持呀,QAT的内容比较深入社区的话就比较难支持了。
从QAT层面分析的话 torch.cat 算子后出现大量 hz_cat_1_rescale_1 类型的附加算子,通常是由于 输入张量的量化 scale 不一致,导致工具链自动插入 rescale(重缩放)节点以对齐 scale。即使你为所有输入配置了相同的 qconfig(如 default_qat_8bit_fake_quant_qconfig),实际运行时各分支的激活统计范围仍可能不同,从而产生不同的 scale。
- 确保 cat 前所有输入共享相同的 QuantStub 或 FakeQuantize 节点
- 如果多个输入来自不同路径(如 skip connection + 主干),即使 qconfig 相同,也会因数据分布不同而生成不同 scale。
- 推荐做法:将这些输入在 cat 前通过同一个 QuantStub 实例,强制共享 scale。