随笔分类 -  推理框架

摘要:如果模型中有些算子不被ONNX算子库支持,我们就需要利用ONNXRuntime提供的API手动添加新算子。在官方文档中已经对如何添加定制算子进行了介绍(https://onnxruntime.ai/docs/reference/operators/add-custom-op.html ),这里我们主 阅读全文
posted @ 2022-03-30 18:28 虔诚的树 阅读(6422) 评论(1) 推荐(1) 编辑
摘要:背景:在学习如何往ONNXRuntime中添加新算子时,参考了官方测试代码:onnxruntime/test/shared_lib/test_inference.cc,代码内部使用GTest作为单元测试工具。为了清楚地学习运行过程,一步一步地调试是不可缺少的。 开始调试前需要以Debug方式编译代码 阅读全文
posted @ 2022-03-30 12:08 虔诚的树 阅读(1228) 评论(0) 推荐(0) 编辑
摘要:前言 在上一篇博客中:【推理引擎】ONNXRuntime 的架构设计,主要从文档上对ONNXRuntime的执行流程进行了梳理,但是想要深入理解,还需从源码角度进行分析。 本文以目标检测模型NanoDet作为分析的基础,部分代码主要参考:超轻量级NanoDet MNN/TNN/NCNN/ONNXRu 阅读全文
posted @ 2022-03-29 15:40 虔诚的树 阅读(6425) 评论(0) 推荐(0) 编辑
摘要:ONNXRuntime,深度学习领域的神经网络模型推理框架,从名字中可以看出它和 ONNX 的关系:以 ONNX 模型作为中间表达(IR)的运行时(Runtime)。 本文许多内容翻译于官方文档:https://onnxruntime.ai/docs/reference/high-level-des 阅读全文
posted @ 2022-03-29 08:40 虔诚的树 阅读(3724) 评论(0) 推荐(0) 编辑
摘要:定义模型结构 首先使用 PyTorch 定义一个简单的网络模型: class ConvBnReluBlock(nn.Module): def __init__(self) -> None: super().__init__() self.conv1 = nn.Conv2d(3, 64, 3) sel 阅读全文
posted @ 2022-03-27 10:14 虔诚的树 阅读(4021) 评论(0) 推荐(0) 编辑
摘要:根据下面这篇博客编译TNN的onnx2tnn模块: 编译 onnx2tnn 回生成一个动态链接库文件:onnx2tnn.cpython-36m-x86_64-linux-gnu.so 说明:这里是python3.6 + Linux,不同软硬件环境会得到不同名称的动态库。 有了这个库,我们就可以在py 阅读全文
posted @ 2022-03-01 20:06 虔诚的树 阅读(579) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示