对模型部署探索的一些整理

【近期对模型部署探索的整理】:


1.OpenMMLab的模型部署入门教程系列
地址:https://zhuanlan.zhihu.com/p/477743341
主要内容:
(1).pth->.onnx->onnxruntime整个流程的描述(简单版)
(2)torch.onnx.export各种变体的使用
(3)三种映射方式的添加:为ATen算子添加符号函数、为TorchScript算子添加符号函数、对继承自torch.autograde.Function的函数添加符号函数。(以上算子均指的是已经可以在torch或者其他torch附属库(如torchvision等)可以找到的算子)
(4)对onnx内部结构的解析,onnx模型的子模型提取与调试。
进度:除了onnx模型调试部分,其他都看完且跟着走了一遍代码;文中没有写如何自定义算子的详细步骤。

2.onnx官方github上的自定义Torch算子且在onnxruntime上如何运行
地址:https://github.com/onnx/tutorials/blob/main/PyTorchCustomOperator/README.md
主要内容:
(1)将C++下用torch写的函数以shared object形式注册进torch.ops中
(2)使用以上.so文件,做onnx符号函数的映射,导出onnx模型
(3)在onnxruntime上写该函数的实现并添加进onnxruntime的自定义算子域中,实现推理。
进度:本案例在linux-python-c/c++环境下顺利走通且正确,目前未在windows下面试验;未测试如果转trt,是否需要在trt上写算子。

3.tensorRT,自定义插件的方式实现推理
地址:https://blog.csdn.net/qq_40672115/article/details/131884158
主要内容:
(1)python中继承自torch.autograd.Function,注册symbolic函数,导出onnx
(2)在trt中实现插件的编写,序列化与反序列化等等…
进度:太复杂,简单看了概述,没跟着走流程;有时间回来看,若成功,可以解决不少问题。

4.利用Libtorch调用保存的pytorch模型(.pt)进行前向计算(预测)
地址:
https://blog.csdn.net/jiejiaodebeiying/article/details/117186165
https://blog.csdn.net/u013250861/article/details/127895814
主要内容:
(1)利用torch.jit.trace导出.pt文件(含模型结构)
(2)C++ windows下配置Libtorch环境
(3)使用Libtorch的API读取模型文件,实现推理预测。(注意数据处理方式的一致性)
进度:步骤简单,不用通过中间onnx的格式,暂未尝试;有时间走一遍pointnet++的流程试试。

其他参考:

-----ONNX相关参考资料-----
ONNX官网API文档:https://onnxruntime.ai/docs/api/c/index.html
TensorRT官网API文档:https://docs.nvidia.com/deeplearning/tensorrt/api/c_api/annotated.html
onnx->tensorrt示例(动态输入输出):https://blog.csdn.net/qq_40243750/article/details/136935985
onnx算子问题参考:
randint:https://github.com/pytorch/pytorch/pull/105089/commits/bccc4a063c923adad255863eca10a518c5d6684c#diff-6616e68665d29ba8ab30d14fc99a8459f974fb58368d71daf7bca89701e557db

github symbolic_opset9.py:
https://github.com/pytorch/pytorch/blob/v2.3.0/torch/onnx/symbolic_opset9.py

在 PYTORCH 中支持更多 ONNX 算子:
https://blog.csdn.net/fanre/article/details/130101243

pointnet++转onnx过程中出现的问题issue:
https://github.com/pytorch/pytorch/issues/77222

模型部署系列教程:
https://zhuanlan.zhihu.com/p/498425043
https://www.bilibili.com/video/BV1Xw411f7FW?p=3&vd_source=1d204308936e108c95b2ecb8fcdbd781

torch.onnx.export导出时,若输入为字典,如何处理
https://blog.csdn.net/Dteam_f/article/details/122487634?spm=1001.2014.3001.5502

torch.jit.trace与torch.jit.script区别
https://zhuanlan.zhihu.com/p/662754635

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值