专栏算法工具链transformer模型转换onnx 成功,做图优化的时候报 Segmentation fault

transformer模型转换onnx 成功,做图优化的时候报 Segmentation fault

已解决
默认998082024-10-21
125
8

J5_OE_1.1.68

transformer模型转换onnx 成功,做图优化的时候报 Segmentation fault(core dumped)

报错信息有限,如何确认抛出异常的位置?

附件:
算法工具链
征程5
评论2
0/1000
  • 默认99808
    Lv.1

    图优化方法如下:

    optimized_model = optimizer_tool('model.onnx')

    horizon_onnx.save_model(optimized_model, 'optimized_model.onnx')

    可能得原因是啥呢?






    2024-10-21
    0
    6
    • Huanghui回复默认99808:
      你好,经编译复现,未发现你所描述的Segmentation fault,这里附件上复现过程日志,请参考:segment_fault_reproduce.log

      另外:在PTQ流程中,模型转换出onnx模型后可以直接使用hb_compile进行模型的转换优化和编译,图优化是在hb_compile进行模型转换编译过程中的一环,转换编译过程会自动进行,无需手动敢于优化流程。

      2024-10-22
      0
    • 默认99808回复Huanghui:

      好的,感谢!

      因为想看看图优化的结果,所以考虑手动图优化,我这边多次验证确实是Segmentation fault,包括在fpn, cross attention,都有一些奇怪的段错误,如果用自带torch.onnx.export,optset_version=16,转onnx,及使用onnxsim优化都没啥问题了;另外,J6是否支持torch原生的grid_sample呢?

      最后是否可以再帮忙验证一下model2.onnx这个模型呢,感谢!

      2024-10-22
      0
    • Huanghui回复默认99808:

      grid_sample是支持的!可以,我验证完给你同步结论哈,不过这种的一般都是你们自己验证的

      2024-10-22
      0
    • 默认99808回复Huanghui:

      你好,不用验证了哈,问题已经找到了,目前发现是export_onnx不支持dynamic_axes, 去掉这个用optimizer_tool就能正常跑了, 谢谢啦!

      2024-10-22
      0
    • Huanghui回复默认99808:
      好的,那问题关了哈。对了,你这个optimizer_tool是哪里的呀
      2024-10-22
      0
    • 默认99808回复Huanghui:

      好的,这个是你们工具链里面的接口哈

      from horizon_nn.tools.optimizer_tool import optimizer_tool

      调用的是 from horizon_nn.horizon_onnx.onnx_cpp2py_export import quantizer as C, 这个so文件的api


      2024-10-22
      0
  • Huanghui
    Lv.5

    收到!


    2024-10-21
    0
    0