java调用onnx模型_Qt ncnn Android部署模型记录

现在有很多模型部署框架了,综合考虑易用性,性能,支持模型转换的类型,成熟程度,考虑使用ncnn进行模型部署。

ncnn开源地址:

Tencent/ncnn​github.com
0020872b15e4d94fc645828ca05d1e1e.png

这里我使用pytorch训练好的PSENet模型进行部署。

正文

官方pytorch转ncnn说明文档

转换流程如下:

pytorch训练->onnx->onnx-simplifier->ncnn

1. pytorch训练->onnx

注意如果模型中没有sigmoid,而是在后处理中用它,导出onnx时需要在Module里加入sigmoid
注意如果有interpolate操作,align_corners参数设置为False

转换代码如下:

def torch2onnx(model, save_path):
    """
    :param model:
    :param save_path:  XXX/XXX.onnx
    :return:
    """
    model.eval()
    data = torch.rand(1, 3, 224, 224)
    input_names = ["input"]   #ncnn需要
    output_names = ["out"]  #ncnn需要
    torch.onnx._export(model, data, save_path, export_params=True, opset_version=11, input_names=input_names, output_names=output_names)
    print("torch2onnx finish.")

c6d0d8da9ccdf0ba014064febb8418ca.png

2. onnx->onnx-simplifier

2.1 安装onnx-simplifier

pip install onnx-simplifier

2.2 输入命令转换模型

python -m onnxsim pse.onnx pse_sim.onnx

得到以下结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值