pytorch模型转为onnx再转为ncnn模型

目录

1.  .pt模型转为.onnx报错问题

2.关于onnx模型简化的问题

3.ncnn介绍:


1.  .pt模型转为.onnx报错问题

   选择opset version为11

   可能报错:the operator silu to ONNX opset version 11 is not supported

   原因:onnx不支持silu算子

           silu激活函数:silu (x)=x∗ sigmoid(x)

   解决办法:手动修改虚拟环境中第三方库torch中的函数

   参考:https://blog.csdn.net/qq_43450443/article/details/130053363

2.关于onnx模型简化的问题

使用pytorch转onnx模型后经常需要做下simplify, 经过simplify后的模型更加简洁,其底层实现原理是通过读取onnx模型,再将一些需要动态计算的值转换为静态值,从而对模型进行简化,便于进行之后的推理操作。

有些代码在转为onnx模型的时候已经做了simplify,具体看传入的参数配置  

如果没有的话,两种方法

第一种方法:可以自己安装onnx-simplifier,及onnxruntime库

 终端运行以下命令启动库中的脚本

python -m onnxsim path_to_your_input_onnx path_to_your_output_onnx

第二种方法:如果你最终要转成ncnn模型,可以直接用下面的工具

一键转换 Caffe, ONNX, TensorFlow 到 NCNN, MNN, Tengine (convertmodel.com)

 勾选即可

onnx模型在线查看网站:Netron

3.ncnn介绍:

ncnn是腾讯推出的在手机端极致优化的高性能神经网络前向计架框架,适用于手机端的CPU计算且无需依赖第三方计算库,ncnn只用作推理。基于 ncnn,开发者能够将Netron轻松移植到手机端高效执行,开发出人工智能 APP,将 AI 带到你的指尖。NCNN模型是全部用c++来写的,可以跨平台,常见的嵌入式设备上可以通用。

ncnn模型由两个文件组成,.bin和.param文件

前者是权重数据文件,后者是网络结构文件

 该网站可以查看param文件,网络结构可视化  Netron

后面可对ncnn模型进行加密,用模型进行推理等操作。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值