已关闭
msfmktransplt 做 ONNX→OM 转换时 dynamic batch 场景下 Conv、MatMul 等算子的 shape 推导缺少实际输入,输出 shape 为 unknown #227
崇理战队创建于  7月8日关闭于  7月11日
崇理战队
7月8日 创建

用 mstt 做 PyTorch→ONNX→昇腾 OM 的模型转换,模型输入是 dynamic batch(batch=dynamic)。

转换到一半报错,日志显示某些 Conv 算子的输出 shape 是 unknown

跟了 msfmktransplt/src/ 下的转换逻辑(可能是 platform/opensource/ 目录),问题在于 dynamic batch 场景下,ONNX 模型里的 Conv/MatMul 算子的 input_shape 在某些 pass 里被设为 [dynamic, C, H, W],但后续的 shape 推导函数没有处理 dynamic 这个占位符,直接返回 unknown

导致依赖该 shape 的下游算子全部报 shape inference failed,转换流程中止。

建议:

  1. shape 推导函数里对 dynamic 维度做符号传播(symbolic shape propagation)
  2. 或者在做 shape 推导时至少保留 dynamic 关键字,不要退化为 unknown
  3. 或者在转换失败时给出具体哪个算子的哪个维度推导失败,而不是笼统的 shape inference failed
likedislike
崇理战队
7月8日 添加了label:bug
捡到宝。
捡到宝。成员
7月8日 评论:

👋 您好,欢迎向 MindStudio Training Tools(mstt) 提交 Issue!
我们已收到您的反馈,感谢你对开源社区的支持。🎉

📅处理时效: 维护团队将在24小时内 查看并回复您的问题(工作日)。
🔍自助查询: 在等待期间,建议您先查阅以下资料,可能已有解决方案:

📖 mstt官方文档
📝 贡献者说明

请确保 Issue 描述清晰,包含复现步骤和日志,这将帮助我们更快定位问题。谢谢!

likedislike
Kkun_8成员
7月9日 添加了label:triaged
Martin_M
7月9日 评论:

开发者您好,mstt代码仓中并无ONNX模型转昇腾OM模型的功能,此处描述的是否是CANN中的ATC工具? @jiangzeyu-2026

likedislike
崇理战队
7月11日 issue状态由 TODO 改变为 DONE
崇理战队
7月11日 关闭了 issue
ascend-robotascend-robot成员
7月11日 添加了label:resolved