使用AIMET训练的时候, 我们在特定情况下没法将量化结果反馈于perf chanel量化的上。

维多利亚的拥抱 2024-10-18 12:59:25

使用AIMET训练的时候, 我们在特定情况下没法将量化结果反馈于perf chanel量化的上。

当模型图的中间存在输出时,从该输出到模型的最终输出不会应用于perf chanel模式。这可以在构建 ConnectedGraph 期间观察到。

在存在分支的情况下,你可以在 ConnectedGraph._link_branch_op_to_multiple_ops 方法中检查此问题,该方法将拆分后的乘积与它的使用者连接起来。当存在输出时,它会用输出乘积覆盖现有的 branch_to_multiple_ops 乘积。结果,它无法在后续的 ordered_ops 中连接。

...全文
806 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38498942 2024-10-21
  • 打赏
  • 举报
回复

您可以通过注释掉 ConnectedGraph._link_branch_op_to_multiple_ops 中的第 514 行来暂时解决此问题:

# self._create_link_for_output_product(output.name, branch_op.name)

通过从列表中排除输出,潜在的问题是 output_quantization_config 可能无法应用。然而,在输出和常规连接在多个部分混合的情况下,将输出配置合并到中间 QcNode 可能会导致意外结果。

虽然可能有更严谨的方法来调整图(例如添加一个相同的 QcNode 以应用所有选项),但这将导致重大变化。就目前而言,我认为当前的修改是足够的。

可以使用 aimet/TrainingExtensions/onnx/test/python/models/models_for_tests.py 中的 MultipleOutputModel 重现此问题。它也可以在由 test_multiple_output_quantsim() 函数生成的 QuantizationSimModel 中观察到。

2,851

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能物联网机器学习 技术论坛(原bbs) 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧