ncnn是一个为手机端极致优化的高性能神经网络前向计算框架。基于 ncnn,开发者能够将深度学习算法轻松移植到手机端高效执行,开发出人工智能 APP,将 AI 带到你的指尖。
但是onnx直接转ncnn会存在很多问题,所以一般考虑都是先将onnx转化为onnxsim然后再进行simpler到ncnn的转换。
那么如何将onnx转化为onnxsim呢,网上有两种方法,第一种是直接利用安装的onnxsimple包来进行转换
python -m onnxsim cr_acc_9954.onnx cr_acc_9954-sim.onnx
但是前提是你能准确安装上onnxsimple,关于安装的时候出现的问题,在我之前的博客有提及到,可以翻看之前的博客。
还有一种就是通过代码来转换,代码如下所示:
def convert(model_name):
input_shapes = {None: [1, 3, 32, 320]}
model_opt, check_ok = onnxsim.simplify(model_name, input_shapes=input_shapes)
onnx.save(model_opt, model_name[:-5]+"-sim.onnx")
print("the model was simplified successfully")
if __name__ == '__main__':
model_name="models/checkpoint_27_acc_0.9981.onnx"
conv