准备工作
1.linux下编译ncnn,用于转换onnx文件到ncnn格式
2.下载c++所需的dll,lib,头文件
从https://github.com/Tencent/ncnn/tags
选个最新windows平台编译好的shared版本下载,里面的头文件文件夹,dll,lib直接配置到项目即可(build from source一堆错误。。。)
3.onnx转ncnn(https://github.com/Tencent/ncnn/blob/master/docs/how-to-use-and-FAQ/use-ncnn-with-pytorch-or-onnx.md)
先下载https://github.com/daquexian/onnx-simplifier仓库,进入此仓库目录敲命令python setup.py install
,再python -m onnxsim sample.onnx sample-sim.onnx
得到简化后的onnx,再在.../ncnn/tools/onnx/
cmake make得到onnx2ncnn
可执行文,再执行命令./onnx2ncnn sample-sim.onnx sample.param sample.bin
4.创建vs c++控制台程序
工程添加ncnn-20210525-windows-vs2017-shared,安装的VulkanSDK的include,opencv的头文件,ncnn,open的lib,dll
参考...\ncnn\examples\shufflenetv2.cpp
过一遍推理过程,注意要注释掉下面这行
my_shufflenetv2.opt.use_vulkan_compute = true;
#include "pch.h"
#include <iostream>