ZhangGe6 / onnx-modifier

A tool to modify ONNX models in a visualization fashion, based on Netron and Flask.
MIT License
1.28k stars 157 forks source link

添加Add Div Clip之后 对生成之后得onnx进行onnxsim,报错 #78

Closed QIANXUNZDL123 closed 9 months ago

QIANXUNZDL123 commented 1 year ago

image 我添加这三个算子之后,进行了onnxsim就报错了,, image 请问这是什么原因导致得??

ZhangGe6 commented 1 year ago

@QIANXUNZDL123 谢谢反馈。这是由于由onnx-modifier新增的节点,不确保是拓扑排序的。该问题正在修复中。

可暂时采取以下workaround:对onnx-modifier得到的模型,先使用graphsurgeon进行一遍拓扑排序

# install graphsurgeon
pip install nvidia-pyindex
pip install onnx-graphsurgeon
import onnx
import onnx_graphsurgeon as gs

src_model_path = "modified_xyz.onnx"
dst_model_path = "dst_model.onnx"

graph = gs.import_onnx(onnx.load(src_model_path))
graph.toposort()
onnx.save(gs.export_onnx(graph), dst_model_path)

将得到的dst_model.onnx用onnxsim处理。

QIANXUNZDL123 commented 1 year ago

多谢,我试试看

QIANXUNZDL123 commented 1 year ago

请问,我这设置了float32[] 也设置过float32[1] 但最后为啥还是这样
image

ZhangGe6 commented 1 year ago
  1. 请问之前的拓扑排序问题,用前面提到的workaround是否解决?
  2. Div的修改,期望是什么样的?
QIANXUNZDL123 commented 1 year ago
  1. 请问之前的拓扑排序问题,用前面提到的workaround是否解决?
  2. Div的修改,期望是什么样的?

拓扑排序之前解决了,,Div期望是张量的形式float32[1]这种形式的 image

ZhangGe6 commented 1 year ago

@QIANXUNZDL123 “onnx-modifier新增的节点,不确保拓扑排序,从而导致onnxsim运行报错的问题”,已提交代码进行修复。如有需要,可拉取最新代码,看看问题是否解决。

ZhangGe6 commented 1 year ago

拓扑排序之前解决了,Div期望是张量的形式float32[1]这种形式的

@QIANXUNZDL123 需要在数值输入框里,填[6],而不是6

issue78
QIANXUNZDL123 commented 1 year ago

拓扑排序之前解决了,Div期望是张量的形式float32[1]这种形式的

@QIANXUNZDL123 需要在数值输入框里,填[6],而不是6issue78

你好,拉取了新得代码之后,无法保存模型了。一直出现错误。。。

11111 2222

ZhangGe6 commented 1 year ago

@QIANXUNZDL123 谢谢反馈。请问在点击Download按钮前,做了哪些操作?是否方便提供原始模型以供复现问题?谢谢。

同时我新提交了一份代码,把onnx_checker.check_model()默认关闭了,有时候它太严格。之后可能会把它作为一个用户导出模型时的可选项。

QIANXUNZDL123 commented 1 year ago

@QIANXUNZDL123 谢谢反馈。请问在点击Download按钮前,做了哪些操作?是否方便提供原始模型以供复现问题?谢谢。

同时我新提交了一份代码,把onnx_checker.check_model()默认关闭了,有时候它太严格。之后可能会把它作为一个用户导出模型时的可选项。

链接:https://pan.baidu.com/s/1JIwHMvjdGrwTsc18H78umg?pwd=9gct 提取码:9gct --来自百度网盘超级会员V1的分享 我只是将hardsigmod替换了add div clip 之后点击保存无法保存,上面是带有hardsigmod的原始模型

ZhangGe6 commented 10 months ago

使用最新代码,本地测试可正常将hardsigmod替换了add div clip并正常保存。 78