
模型部署
文章平均质量分 87
记录与分享各种模型部署学习的内容
卖报的大地主
心中一点浩然气,何处不是倒悬山
展开
-
【模型加速部署】—— Pytorch自动混合精度训练
torch. amp为混合精度提供了方便的方法,其中一些操作使用torch.float32(浮点)数据类型,而其他操作使用精度较低的浮点数据类型(lower_precision_fp):torch.float16(half)或torch.bfloat16。一些操作,如线性层和卷积,在lower_precision_fp中要快得多。其他操作,如缩减,通常需要float32的动态范围。混合精度试图将每个操作与其适当的数据类型相匹配。原创 2023-08-08 15:33:01 · 4136 阅读 · 0 评论 -
【模型部署】入门教程(八):如何添加 TensorRT 自定义算子
本篇教程我们主要讲述如何在 MMDeploy 代码库中添加一个自定义的 TensorRT 插件,整个过程不涉及太多更复杂的 CUDA 编程,相信小伙伴们学完可以自己实现想要的插件。至此,我们的模型部署入门系列教程已经更新了八期,那到这里可能就先暂时告一段落啦!所有跟模型部署相关的内容,都整理在这个专栏啦,欢迎大家关注~模型部署那些事www.zhihu.com/column/c_1497987564452114432正在上传…重新上传取消。转载 2023-04-20 13:22:42 · 1243 阅读 · 1 评论 -
【模型部署】入门教程(七):TensorRT 模型构建与推理
TensorRT 是由 NVIDIA 发布的深度学习框架,用于在其硬件上运行深度学习推理。TensorRT 提供量化感知训练和离线量化功能,用户可以选择 INT8 和 FP16 两种优化模式,将深度学习模型应用到不同任务的生产部署,如视频流、语音识别、推荐、欺诈检测、文本生成和自然语言处理。TensorRT 经过高度优化,可在 NVIDIA GPU 上运行, 并且可能是目前在 NVIDIA GPU 运行模型最快的推理引擎。关于 TensorRT 更具体的信息可以访问TensorRT官网了解。转载 2023-04-20 13:20:14 · 2136 阅读 · 0 评论 -
【模型部署】入门教程(六):实现 PyTorch-ONNX 精度对齐工具
基于前几篇教程中的知识,本文我们介绍了一个与 PyTorch 转 ONNX 相关的实战项目。相信通过这个项目,大家既巩固了之前学过的 ONNX 相关知识,又获得了一个在模型部署中十分实用的工具,可谓是收获颇丰。教程(三):PyTorch 转 ONNX 详解在 ONNX 文档里查找Identity算子的定义。的调用方法。默认使用跟踪法生成 ONNX 文件。教程(四):在 PyTorch 中支持更多 ONNX 算子使用实现自定义 ONNX 算子my::Debug。转载 2023-04-19 23:43:54 · 734 阅读 · 0 评论 -
【模型部署】入门教程(五):ONNX 模型的修改与调试
在用 API 对 ONNX 模型进行操作之前,我们还需要先了解一下 ONNX 的结构定义规则,学习一下 ONNX 在 Protobuf 定义文件里是怎样描述一个神经网络的。回想一下,神经网络本质上是一个计算图。计算图的节点是算子,边是参与运算的张量。而通过可视化 ONNX 模型,我们知道 ONNX 记录了所有算子节点的属性信息,并把参与运算的张量信息存储在算子节点的输入输出信息中。事实上,ONNX 模型的结构可以用类图大致表示如下:如图所示,一个 ONNX 模型可以用ModelProto类表示。转载 2023-04-19 23:41:22 · 4783 阅读 · 0 评论 -
【模型部署】入门教程(四):在 PyTorch 中支持更多 ONNX 算子
模型部署入门系列教程持续更新啦,在上一篇教程中,我们系统地学习了 PyTorch 转 ONNX 的方法,可以发现 PyTorch 对 ONNX 的支持还不错。但在实际的部署过程中,难免碰到模型无法用原生 PyTorch 算子表示的情况。这个时候,我们就得考虑扩充 PyTorch,即在 PyTorch 中支持更多 ONNX 算子。转载 2023-04-19 23:33:40 · 569 阅读 · 0 评论 -
【模型部署】入门教程(三):PyTorch 转 ONNX 详解
在这篇教程中,我们系统地介绍了 PyTorch 转 ONNX 的原理。我们先是着重讲解了使用最频繁的 torch.onnx.export函数,又给出了查询 PyTorch 对 ONNX 算子支持情况的方法。通过本文,我们希望大家能够成功转换出大部分不需要添加新算子的 ONNX 模型,并在碰到算子问题时能够有效定位问题原因。跟踪法和记录法在导出带控制语句的计算图时有什么区别。中该如何设置。使用来使模型在转换到 ONNX 时有不同的行为。如何查询 ONNX 算子文档(转载 2023-04-19 22:15:54 · 1987 阅读 · 1 评论 -
【模型部署】入门教程(一):模型部署简介
OpenMMLab 的算法如何部署?是很多社区用户的困惑。而模型部署工具箱 MMDeploy的开源,强势打通了从算法模型到应用程序这 "最后一公里"!中间表示 ONNX 的定义标准PyTorch 模型转换到 ONNX 模型的方法推理引擎 ONNX Runtime、TensorRT 的使用方法部署流水线 PyTorch - ONNX - ONNX Runtime/TensorRT 的示例及常见部署问题的解决方法MMDeploy C/C++ 推理 SDK。转载 2023-04-19 16:41:39 · 5289 阅读 · 1 评论 -
【模型部署】TorchScript 解读(四):Torch jit 中的别名分析
Torch jit 中内置了非常多的 pass 以帮助我们完成各式各样的优化,用户也可以定义自己的 pass 来实现特定的目的。这种灵活性给我们优化模型带来了便利,但是它也不是没有限制的。x = x + 1x.add_(x)神经网络会构成一个计算图 Graph,原则上一个 Graph 中的 Node 如果不能通过任何路径到达输出节点,那么这就是一个无用的节点,可以被优化(删除)掉。比如上图中的add_节点。这种优化通常被称为死代码消除(DeadCodeElimination)。通过代码可知,add_转载 2023-04-19 16:16:40 · 320 阅读 · 0 评论 -
【模型部署】TorchScript 解读(三):jit 中的 subgraph rewriter
小伙伴们好呀,TorchScript 解读系列教程又来啦~在,我们带领大家初步了解了TorchScript;在中,我们介绍 TorchScript 通过 trace 来记录数据流的生成方式,同时分享使用该机制实现的 ONNX 导出过程。接下来,就让我们进入今天的正题吧~现代的深度学习推理框架通常遵循编译器的范式,将模型的中间表示(IR)会分为两部分:包括与硬件、环境等无关的前端(frontend)以及针对特定环境的后端(backend),比如 TVM 的 Relay 和 tir 就是一个典型的例子。转载 2023-04-19 16:14:49 · 390 阅读 · 0 评论 -
【模型部署】TorchScript 解读(二):Torch jit tracer 实现解析
TorchScript 解读(二):Torch jit tracer 实现解析 - 知乎 (zhihu.com)转载 2023-04-19 14:57:02 · 1395 阅读 · 0 评论 -
【模型部署】TorchScript 解读(一):初识 TorchScript
PyTorch 无疑是现在最成功的深度学习训练框架之一,是各种顶会顶刊论文实验的大热门。比起其他的框架,PyTorch 最大的卖点是它对动态网络的支持,比其他需要构建静态网络的框架拥有更低的学习成本。PyTorch 源码 Readme 中还专门为此做了一张动态图:对研究员而言, PyTorch 能极大地提高想 idea、做实验、发论文的效率,是训练框架中的豪杰,但是它不适合部署。转载 2023-04-19 14:31:00 · 1977 阅读 · 0 评论 -
【模型部署】使用opencv C++ 加速YOLO V5
在ultralytics/YOLO V5中官方给出了利用opencv c++ cuda 进行YOLO V5加速的实例代码,但是代码中并没有给出相关注释,今天花了些时间,把示例源码仔细看了看,并把每一部分都进行了详细注释。内容在下方,欢迎大家交流学习。原创 2023-04-03 14:54:56 · 4486 阅读 · 3 评论 -
【模型部署】使用OpenCV C++ API转换PyTorch分类模型并推理
# 使用OpenC C++ API转换PyTorch分类模型并推理 1、将PyTorch分类模型转换为ONNX格式 使用pytorch的`torch.onnx.export()`接口将模型转换为onnx格式。下例以`resnet50`为例进行演示。原创 2023-03-30 20:21:42 · 1098 阅读 · 1 评论 -
【模型部署】利用opencv Python API 加载与运行Pytorch模型
在使用OpenCV加载和运行PyTorch模型时,需要将模型转换为ONNX格式。此外,由于PyTorch和OpenCV使用的数据类型和颜色通道顺序不同,因此需要进行数据格式和颜色通道的转换。OpenCV可以调用PyTorch模型。通过将PyTorch模型转换为ONNX格式,然后使用OpenCV中的dnn模块加载和运行模型。原创 2023-03-08 20:01:30 · 2513 阅读 · 2 评论