---
title: onnx-modifier-ONNX可视化编辑
author: Zhang Ge
date: 2022-04-29 09:09:00 +0800
categories: [专业积累, 工具开发]
tags: [onnx]
math: true
---
简体中文 | [English](readme.md)
`ONNX `(Open Neural Network Exchange) 是一种针对机器学习所设计的开放式的文件格式,经常作为不同框架模型转化的中间文件。有时我们拿到ONNX文件,想将它进行一些修改,比如:
- **删除部分节点。** 比如,`ONNX`文件中一些前后处理的算子节点。
- **增加节点**。
- **修改节点属性。**比如修改某一节点的输入输出名称。
目前常用的方法是,先可视化模型图结构,然后基于`ONNX`的Python API编写脚本,对模型图结构进行编辑。但这可能需要我们在可视化-脚本-可视化-...之间反复横跳。而且在一张庞大的图上搜集想要修改的节点,也比较花时间。
能不能有一个工具,可以**实时预览编辑后的可视化效果,从而更方便,快捷,直观地实现`ONNX`模型的编辑**呢?:rocket: 这便是`onnx-modifier` ([github]())开发的动机。所有的编辑信息将最终汇总,统一送由ONNX Python处理,得到编辑后的ONNX模型文件。
`onnx-modifier`基于流行的模型可视化工具 [Netron](https://github.com/lutzroeder/netron) 和轻量级Web应用框架 [flask](https://github.com/pallets/flask) 开发。希望它能给社区带来一些贡献~
# 安装与运行
- 拉取`onnx-modifier`,安装所需要的Python库
```bash
git clone git@github.com:ZhangGe6/onnx-modifier.git
cd onnx-modifier
pip install onnx
pip install flask
```
- 运行
```bash
python app.py
```
点击输出中的url(如`http://127.0.0.1:5000/`),即可在浏览器中进入onnx-modifier界面。点击`Open Model...`,上传所需要编辑的模型文件,上传完毕后,网络可视化结构会自动显示。
# 编辑
图结构层级操作(界面左上角) |
节点层级操作(节点属性栏) |