ONNX模型结构的查看(Pytorch模型转onnx以及转torchscript模型)

关于ONNX:不废话了,不了解的onnx的去知乎或者百度去查询(不要杠,杠就是你赢了)。

      1. 是不是还在烦恼模型的结构没有直观的感受,为什么别人对模型的理解这么深刻,讲道理,视觉上的感受一般比文字的感受更加深刻,所以神器在哪里?查看模型结构的神器在这里:Netronhttps://netron.app/

      主界面如下,比较简单的界面,但是功能很强大

      2. 如果担心模型被拷贝或者泄露,可以下载离线的版本(速度不行的话,请使用科学上网)

GitHub - lutzroeder/netron: Visualizer for neural network, deep learning, and machine learning modelshttps://github.com/lutzroeder/netron      3. 你看,这个结构多清晰,一步一步的(想起了TF的tensor数据流),好了神器给你了,慢慢研究。

Pytorch模型转onnx怎么办?怎么设置参数?多输入的怎么办?

import torch


model.load_state_dict(torch.load("name.pth"))
model.eval()
dummy_input = torch.randn(1, 3, 32, 32)
# dummy_input_2 = torch.randn(1, 3, 64, 64)
torch.onnx.export(model, dummy_input, 'name.onnx',verbose=True,opset_version=9/10/11)
# 多输入,opset_version根据torch的版本决定,转onnx的时候提示的
# torch.onnx.export(model, [dummy_input,dummy_input_2], 'name.onnx',verbose=True,opset_version=9/10/11)


# 指定输入和输出导出onnx
# input_names = [ "input_1"]
# output_names = [ "output1" ]
# torch.onnx.export(model, (dummy_input1, dummy_input2), "name.onnx", verbose=True, input_names=input_names, output_names=output_names)

       我一般就根据模型自己去搜索输入和输出,其中还有几个参数可以选着,根据自己的情况去导出模型就行
      (1) input_names (list of strings, default empty list) – 按顺序分配名称到图中的输入节点
      (2) output_names (list of strings, default empty list) –按顺序分配名称到图中的输出节点
 

转换onnx后有很多的胶水op,可以用ONNX Simplifier简化模型

GitHub - daquexian/onnx-simplifier: Simplify your onnx modelhttps://github.com/daquexian/onnx-simplifier     安装pip3 install -U pip && pip3 install onnx-simplifier(注意onnx的版本),简化还是比较有必要的

 Pytorch模型转torchscript模型

 去这位博主的文章看看,写的很清楚了,不再赘述。那为什么要转torchscript模型?将pytorch模型转化成torchscript目的就是为了可以在c++环境中调用pytorch模型,同时可以在netron中查看模型的结构啦!!!(2条消息) pytorch模型转torchscript_superjfhc的博客-CSDN博客_torchscripthttps://blog.csdn.net/weixin_41779359/article/details/109009192?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164735194616780261958314%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164735194616780261958314&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-109009192.142%5Ev2%5Epc_search_result_control_group,143%5Ev4%5Econtrol&utm_term=Pytorch%E6%A8%A1%E5%9E%8B%E8%BD%ACtorchscript%E6%A8%A1%E5%9E%8B&spm=1018.2226.3001.4187

  • 33
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
PyTorch是一个用于搭建和训练深度学习模型的开源框架。在模型训练完成后,模型部署是将训练好的模型应用于实际生产环境的过程。下面我将简单介绍PyTorch模型部署的一般步骤和方法。 首先,将训练好的模型保存为文件,通常为扩展名为`.pt`或`.pth`的文件。这个文件包含了模型结构和参数。保存模型可以使用`torch.save()`函数。 要部署PyTorch模型,我们可以选择多种方法。一种常见的方法是使用模型加载器,比如TorchScriptTorchScript可以将PyTorch模型换为一个脚本,这样我们可以在不依赖PyTorch的情况下运行模型换为TorchScript可以使用`torch.jit.trace()`或`torch.jit.script()`函数。 另一种常见的方法是使用ONNX(开放神经网络交换)格式。ONNX是一个开放标准的模型格式,可以在不同的深度学习框架之间共享模型。我们可以使用PyTorch提供的`torch.onnx.export()`函数将PyTorch模型导出为ONNX格式。 在部署模型之前,我们需要选择一个合适的推理引擎。推理引擎是一个用于加载和运行模型的软件库。常用的推理引擎包括PyTorch自带的`torchserve`和`torchscript`,还有其他第三方库,比如TensorRT、ONNX Runtime等。 最后,将部署好的模型连接到实际应用中。这可以通过API接口、命令行工具等方式完成。PyTorch官方提供了`torchserve`工具,可以用于快速搭建一个用于模型推理的服务器。我们还可以使用Flask、Django等框架将模型集成到Web应用中。 总的来说,PyTorch模型部署是将训练好的模型应用于实际生产环境的过程。关键步骤包括保存模型、选择合适的部署方法、选择推理引擎、连接到实际应用。以上这些步骤可以根据特定的需求和情况进行调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呆呆珝

您的打赏是我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值