最近部署很多onnx转ncnn的操作,发现还是需要有页面操作会比较好,而且需要查询onnx的图,所以写了一个工具来搭配使用
建议搭配Netron 来使用
打开模型
选择打开-》选择onnx模型
显示基础信息
查询onnx模型图
展示信息
点击“展示信息”,那么会自动获取模型的输入输出、节点和权重还有节点属性展示在下面框里面
展示节点信息
在名称输入节点信息,点击展示节点详情,节点展示框能够显示当前的节点信息
展示节点权重信息:
点击展示节点权重,可以权重栏看到对应的权重信息。
展示子节点信息
点击展示子节点信息,会默认查询输出节点,如果输出有多个默认选择第一个,如果需要查询其他,可以输入节点名称
使用此功能,输入框的名称不会变动
展示父节点信息
点击展示父节点信息,会默认查询输入节点,如果输入有多个默认选择第一个,如果需要查询其他,可以输入节点名称
使用此功能,输入框的名称不会变动
展示当前节点的权重信息
展示当前节点的权重信息,注意不是名称栏的节点的权重信息,是展示子父节点显示的节点权重。
推理
*注意,推理过后展示节点信息,都会带上形状信息,方便分析
推理能够输出所有输入输出节点的形状信息,这样方便转ncnn的时候遇到有些op不知道形状无法更改,通过形状可以判断自己的模型是否有问题。
如果有些事动态入参,那么显示未-1,那么需要手动更改,这个安装你自己的模型输入来看,比如你们模型传参是1x3x640x640
修改参数,点击修改
可以展示每一步骤的节点形状和类型,注意,内容不会展示太大了
展示节点信息,后续就带上了形状和类型
推理部分节点
有时候推理耗时间,可以选择展示部分节点,或者模型有问题展示不出来也可以选择部分节点进行推理,如下具体需要哪些节点,保留需要的节点,把其他的节点去掉就行
转换ncnn
点击“转换ncnn” 直接转换了
如果有些推理有问题,那么就看看这里
根据上面信息,可以手动修改或者
如包含问题,请使用工具先优化,再尝试生成
pip install onnx-simplifier
python -m onnxsim det_500m_sim.onnx det_500m_sim_sim.onnx
量化优化
这个是官方提供的工具好像对于形状有些问题,可能是我没用对,具体查询另外一遍文章:
ncnn 优化量化_ncnn 量化-CSDN博客
具体工具:https://download.csdn.net/download/p731heminyang/89427714