NCNN工具之onnx2ncnn
一、onnx模型准备
onnx模型开源网站:github链接
直接clone下来,找到所需要的模型,如feastconv_Opset16_graph_convolutions,这个时候.onnx文件里面还是空的,只有一个链接,然后使用git lfs pull命令将模型加载下来
git lfs pull --include="feastconv_Opset16_graph_convolutions" --exclude=""
二、将ncnn编译
使用cmake,make编译之后,在build文件夹里面可以找到我们编译出来的onnx2ncnn工具了,具体位置在/build/tools/onnx文件夹下面,如下图所示
三、使用工具转化
先提前创建文件夹来分别存储我们待转化onnx模型和ncnn模型,我这里使用ncnnmodels和onnxmodels来存储
查看onnx2ncnn源码可发现该工具有3个参数,分别为onnx模型文件,ncnn模型.parm文件和.bin文件存储地址
这里,我们使用工具将上面我们准备好的onnx模型进行转化,输入如下命令,根据实际存放位置调整该命令
../build/tools/onnx/onnx2ncnn ./onnx/onnxmodels/adv_inception_v3_Opset16_timm/adv_inception_v3_Opset16.onnx ./onnx/ncnnmodels/ncnn.param ./onnx/ncnnmodels/ncnn.bin
运行命令结果如下,没有报错
四、查看转化后的ncnn模型
可以看到,在我们指定的位置,生成了想要的.param和.bin文件
查看,param文件,发现转化成功,可以看到该模型共有231层layer和266个blob
以上就是使用ncnn模型转化工具onnx2ncnn的整个过程,谢谢大家