1.ncnn的源码使用2:onnx转ncnn模型跑resnet18
ncnn的使用2:onnx转ncnn模型跑resnet18
NCNN的使用教程:将ONNX模型转换为运行ResNet
NCNN提供了强大的模型转换工具,便于将Caffe、源码ONNX等模型转换为ncnn格式。源码在编译后的源码健康网源码ncnn build/tools目录下,我们找到了onnx2ncnn工具。源码本文将展示如何使用它将PyTorch导出的源码ResNet的ONNX模型转换为ncnn适用的模型。
项目的源码结构如下:src存放源代码,python包含脚本,源码model_param存放模型文件,源码image存放推理,源码bin存放可执行文件。源码点卡充值网站源码在bin目录下,源码我们拷贝了来自ncnn/build/tools/onnx的源码onnx2ncnn工具。
在python脚本export_res.py中,源码通过给定示例输入,源码我们导出resnet的udid代理系统源码ONNX模型至model_param目录。然后,我们使用ncnn官方提供的工具onnx2ncnn进行转换,生成resnet.param和resnet.bin文件,分别存储模型结构和参数。
resnet.param文件包含(magic number)和层与blob的蒙文网站源码数量,其中blob用于存储中间数据。Blob的数量通常比层多,因为每个层可能有多个输入和输出。例如,Convolution层有输入和输出blob,企业建站免费源码而Split算子则有多个输入和输出。
在推理代码中,我们参考ncnn/examples/squeezenet.cpp编写,首先创建Net实例,加载模型参数(resnet.param和resnet.bin),并确保输入转换为RGB格式,因为OpenCV默认为BGR。此外,还需对进行归一化处理,以适应模型的输入要求。
CMakeLists.txt文件中,我们设置了ncnn库的搜索路径,并将可执行文件输出到bin目录下,同时链接ncnn和OpenCV库。
通过以上步骤,你已经学会了如何使用ncnn将ONNX格式的ResNet模型转换并进行推理。