1 在windows上转换onnx模型为ncnn的param,bin格式

Windows系统上可以直接使用ncnn在windows上的发布包里面的onnx2ncnn.exe程序对onnx模型进行转换,我们可以在ncnn的发布页https://github.com/Tencent/ncnn/releases 直接下载ncnn在windows上的发布包,如下图所示

NCNN – 在windows上转换onnx模型为ncnn的param,bin格式-StubbornHuang Blog

这里以上图中的ncnn-20230223-windows-vs2019-shared.zip为例,解压缩包之后进入到x64/bin文件夹中就可以看到onnx2ncnn.exe,如下图

NCNN – 在windows上转换onnx模型为ncnn的param,bin格式-StubbornHuang Blog

然后我们使用命令行工具cd到该目录下,假设需要转换的onnx模型为mobile.onnx,这时候将mobile.onnx模型拷贝到该目录下,使用以下命令行完成模型转换

./onnx2ncnn.exe ./mobile.onnx ./mobile.param ./mobile.bin

如果没有错误,执行成功之后会在该目录下生成mobile.param和mobile.bin两个文件,这个就是ncnn所需要的模型和参数文件。

如果在转换过程中出现了以下的错误

Shape not supported yet!
Gather not supported yet!
Unsupported unsqueeze axes !
Unknown data type 0

则需要在在python中使用onnxsim库对模型进行简化然后再转换成ncnn。