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

添加输出节点outputs,但在导出的模型里不显示 #101

Closed ZJDATY closed 5 months ago

ZJDATY commented 5 months ago

image 想在argmax节点前,添加一个outputs的输出。

image 然后使用添加节点,把Div的输出名称和Argmax的输入名称都改成了outputs,最终达到这个效果。 image 此时是有outputs的,树状图上也有这个节点显示。 image image

导出模型后,只有节点输出名称发生变化,模型的输入输出里,看不到outputs节点。模型的树状图上也没有这个outputs节点。

ZhangGe6 commented 5 months ago

@ZJDATY 谢谢反馈,请看一下终端是否有可参考的报错信息?比如“"[Warning]: outputs is not added successfully!”

至于问题的解决,首先可以试一下,点击Div op后,在弹出的侧边栏中,点击“Add Output”,然后保存。预期模型会新增一个叫onnx::ArgMax_1250的输出。请看一下这一步是否正常?

ZJDATY commented 5 months ago

@ZhangGe6 是的,这一步是正常的。 image

然后我把 这一步导出的模型,再放进去修改,就正常了,相当于要中转一次。 image

ZJDATY commented 5 months ago

此外,我在双击使用 onnx-modifier.exe 时,会一直刷 日志 image

image

ZhangGe6 commented 5 months ago

我在双击使用 onnx-modifier.exe 时,会一直刷日志

谢谢指出,刷屏的日志是预期的。这是我在调试的时候保留下来的,用来提醒后台server还在运行。后面会考虑把它们去掉。

ZhangGe6 commented 5 months ago

然后我把 这一步导出的模型,再放进去修改,就正常了,

@ZJDATY 咦,这样就可以了么?好奇修改后的模型里,ArgMax op的输入叫什么?因为在原模型里,ArgMax的输入,就是Div op的输出,即onnx::ArgMax_125。把onnx::ArgMax_125重命名为outputs,预期会让ArgMax op和Div op断连的。难道是Div op现在有两个输出,分别是onnx::ArgMax_125和outputs了么?

ZJDATY commented 5 months ago

然后我把 这一步导出的模型,再放进去修改,就正常了,

@ZJDATY 咦,这样就可以了么?好奇修改后的模型里,ArgMax op的输入叫什么?因为在原模型里,ArgMax的输入,就是Div op的输出,即onnx::ArgMax_125。把onnx::ArgMax_125重命名为outputs,预期会让ArgMax op和Div op断连的。难道是Div op现在有两个输出,分别是onnx::ArgMax_125和outputs了么?

我肯定不会只改Div 的输出,我把argmax的输入也改了,他会先断开,改完就连上了。

ZhangGe6 commented 5 months ago

好的,符合预期。最开始添加outputs节点失败的问题,不知道是否方便提供原始ONNX模型用于调试,谢谢。

ZJDATY commented 5 months ago

我在双击使用 onnx-modifier.exe 时,会一直刷日志

谢谢指出,刷屏的日志是预期的。这是我在调试的时候保留下来的,用来提醒后台server还在运行。后面会考虑把它们去掉。

这个我在正常使用当中,过几分钟,运行会中止,没有日志消息输出。

ZhangGe6 commented 5 months ago

过几分钟,运行会中止,没有日志消息输出。

“过几分钟”是持续几分钟不做操作么?这个应该是当前exe没有处理好,如果一段时间没有请求,会自动中断。