专栏算法工具链图优化需要在哪个阶段做?

图优化需要在哪个阶段做?

已解决
默认251842025-07-21
52
4
我正在学习QAT量化的流程,请问图优化需要在哪个阶段做?是在1浮点模型训练后2校准前吗?2校准3QAT微调前?还是在3QAT微调之后?
  1. 浮点模型训练(Full Precision Training)

  2. 校准数据前向传播(用于初始化量化参数)

  3. QAT阶段:量化模型的训练微调

另外QAT的时候,工具链有提供什么库方便我们完成图优化吗?比如需要插入前处理、后处理节点,或者移除冗余、动态计算节点,或者CONV-BN-RELU 融合。

 

算法工具链
技术深度解析
评论2
0/1000
  • PhoenixOwner
    Lv.3
    说一下我的理解:图优化不在你所述三个阶段中的任意一个。你说的三个阶段属于算法层面,目的是得到int8型的onnx模型。 图优化位于编译阶段,也就是得到onnx模型以后,由编译器的python前端将onnx模型转换为计算图,然后在编译过程中根据计算图中每个计算节点的上下文信息,完成图优化。其中插入前处理和后处理节点,可以在onnx生成之前完成,移除冗余、动态计算节点,以及CBR融合,在编译时完成。工具链针对这种常用的结构有做专门的图优化。
    当然,如果你在生成onnx前自己完成图优化,也是可以的。
    2025-07-21
    1
    1
    • 默认25184回复PhoenixOwner:
      谢谢,理解了zuoyi_org.svg
      2025-07-22
      0
  • Huanghui
    Lv.5

    你好,在QAT过程中,模型图优化,主要是在prepare阶段,模型会做算子替换,算子融合,算子转换。无论是cali的prepare还是QAT的prepare,都会做。另外,针对图优化工具在工具链中有什么库,其实这个QAT阶段,里面那些所用到的包,或者接口。就是进行图优化使用的 ,比如prepare接口。“ 插入前处理、后处理节点,或者移除冗余、动态计算节点,或者CONV-BN-RELU 融合。 ” 这些在prepare阶段会自动做的

    2025-07-21
    1
    1
    • 默认25184回复Huanghui:
      谢谢,理解了zuoyi_org.svg
      2025-07-22
      0