- 博客(69)
- 收藏
- 关注
原创 ONNX 转 TensorRT Bug 记录:IIfConditionalOutputLayer
环境:TensorRT-8.6.1.6、CUDA-11.811$file上述代码对源代码做了简化,仅剥离出造成问题的部分,用于复现和测试 Bug,输入可以看作 1 个 Batch 有 768 张图像序列,每个图像用 512 维特征向量表示;masks 原本是 bool 类型代表 768 张图像是真实数据还是填充数据。经过测试发现 Bug 由动态模式、squeeze组合引发,因此代码推理阶段分为以下 4 种模式:(1)报错(2)动态模式报错,静态模式通过(3)通过(4)或通过。
2024-12-24 16:25:49
982
原创 AdaTAD(CVPR 2024)视频动作检测方法详解
从论文标题可以看出,AdaTAD 可以在 1B 参数且输入视频在 1000 帧的情况下实现端到端的训练,核心创新点是引入 Temporal-Informative Adapter (TIA) 模块来减少训练内存提高性能。本文先根据代码说明模型训练全过程,再根据论文部分内容说明训练策略和改进思路。
2024-10-15 13:19:22
3208
原创 在 PyCharm 中使用 CUDA Docker 环境
在深度学习的过程中经常会遇到对 CUDA 版本有不同要求的代码库,环境配置困难,本文尝试用 Docker 环境来解决此问题。本文适用于 Ubuntu 系统,主要涵盖 Docker 安装、CUDA 镜像、PyCharm 使用 Docker 环境来调试和运行代码3个方面的内容。
2024-09-20 11:05:24
1663
原创 Transformer 详解 | Pytorch 代码解读
看了许多 Transformer 的文章感觉还是有点抽象,本文将根据 Pytorch 代码从原始输入到最终输出完整走一遍。
2024-08-22 16:27:45
1418
2
原创 视频理解调研笔记 | 2021年前视频动作分类发展脉络
视频理解实际是做视频动作分类,类似图像分类,输入为视频(图像序列),输出为类别。数据集类别数视频数平均时长链接UCF-101101133207.21sPaperDownloadHMDB-515168492~5sPaperDownloadSports-1M48711331585m36sPaperDownload40030624510sPaperDownloadSmth-Smth1742208474sPaperDownload。
2024-07-31 14:49:35
1165
1
原创 MEGA(CVPR 2020)视频目标检测方法详解
2020 - CVPR -《Memory enhanced global-local aggregation for video object detection》视频目标检测方案详解
2024-07-16 09:37:48
1675
原创 YOLOV++ 详解 | 网络结构、代码解析、YOLOV 论文阅读、初识 VID
感觉只是对于 ILSVRC2015_VID 数据集中的视频有效。挑了几个视频看了下,基本有以下特点:视频长度短、场景或背景变化小、大多是针对一个或多个目标拍摄的视频且目标通常比较大。
2024-07-02 14:24:39
1900
13
原创 YOLOv10 超详细解析 | 网络结构、训练策略、论文解读
网络结构按 YOLOv10m 绘制,不同 scale 的模型在结构上略有不同,而不是像 YOLOv8 一样仅调整 depth 和 width。Head 有部分后续计算与 YOLOv8 完全相同,上图省略,具体请看。YOLOv10 整体的网络结构与 YOLOv8 相同,在一些细节模块上有所改进,查看具体的模块计算方式、优化策略跳转部分。
2024-06-09 10:04:59
29105
10
原创 YOLOv8 多种任务网络结构详细解析 | 目标检测、实例分割、人体关键点检测、图像分类
本文仅根据模型的预测过程,即从输入图像到输出结果(图像预处理、模型推理、后处理),来展现不同任务下的网络结构,OBB 任务暂不包含。
2024-06-01 13:10:01
4787
1
原创 从零开始 TensorRT(7)C++ 篇:解析 ONNX
但是反复检查代码感觉没有非法的内存访问,偶然对常用输入的 BatchSize 修改后发现代码能跑通,便做了如下测试。按理来说 optBatchSize 和校正时的 BatchSize 没什么关系,多半是 TensorRT 内部的 Bug。将读取 Numpy 文件的部分改为读取本地图像,并利用 OpenCV 对图像进行预处理,Int8 模式中的校正器部分代码也有所改动。文件,并在 C++ 部分直接读取 Numpy 文件中的数据用于推理和校正,避免了图片解码的相关代码。在 cookbook 中,
2024-03-07 12:50:33
1101
2
原创 从零开始 TensorRT(6)C++ 篇:原生 API 构建网络
而在对示例进行简化时,有些难以确认 API 属于哪个导入的文件。日志记录器 Logger 在构建 TensorRT 部分是必不可少的,并且不像在 Python 中简单的使用。总而言之,感觉在 C++ 中似乎只能通过教程示例等来确定路径、文件、API 等的对应关系。的是头文件,头文件中一般只有声明,还需要包含实现的库文件。对应,C++ 和 Python 中使用的 API 大同小异,流程也基本一致,因此不再对。省略命名空间后,直接阅读代码更加难以得知 API 的归属。,需要导入的文件却有所不同。
2024-02-23 13:42:43
1127
1
原创 从零开始 TensorRT(5)C++ 篇:g++、CMake、VS Code 环境入门
定义 SRC 变量, 其值为 file1.cpp file2.cpp。
2024-02-22 11:24:10
1578
原创 从零开始 TensorRT(4)命令行工具篇:trtexec 基本功能
学习资料:TensorRT 源码示例参考源码:cookbook → 07-Tool → trtexec在 TensorRT 的安装目录下有命令行工具 trtexec,主要功能:(1)由 ONNX 文件生成 TensorRT 引擎并序列化为 plan 文件(2)查看 ONNX 或 plan 文件的网络逐层信息(3)模型性能测试,即测试 TensorRT 引擎在随机输入或给定输入下的性能。
2024-02-04 14:10:58
6216
3
原创 从零开始 TensorRT(3)Python 篇:解析 ONNX、PyTorch TensorRT 接口
学习资料:TensorRT 源码示例。
2024-02-04 13:59:58
1683
原创 从零开始 TensorRT(2)Python 篇:原生 API 构建网络
学习资料:TensorRT 源码示例:示例中使用 TensorRT 的 API 搭建网络并进行推理,由于网络过于简单(只有一层且输入与输出相同),会存在如何实际搭建一个网络模型、搭建网络后如何加载参数等疑问。但作为第一个示例,主要的作用是熟悉构建网络和执行推理的流程,这部分代码比较模板化,会经常用到。:示例中会把一个 Pytorch 模型导出为 ONNX 格式,然后用 TensorRT 读取并生成引擎进行推理,这也是目前最常用的方法。
2024-02-04 13:50:27
1836
3
原创 YOLOv8-seg 分割代码详解(二)Train
本文主要以源码+注释为主,可以了解到YOLOv8从模型的输出到损失计算这个过程每个步骤的具体实现方法。
2023-11-14 10:13:02
3745
9
原创 YOLOv8-seg 分割代码详解(一)Predict
本文从 U-Net 入手熟悉分割的简单方法,再看 YOLOv8 的方法。主要梳理 YOLOv8 的网络结构,以及 Predict 过程的后处理方法。
2023-11-08 15:47:43
9836
9
原创 Python OpenCV 单目相机标定、坐标转换相关代码(包括鱼眼相机)
Python OpenCV 相机标定、世界坐标转像素坐标(包括未矫正图像和矫正图像)、像素坐标(矫正图像)转世界坐标、求解单应性矩阵、坐标单应性变换相关代码。
2022-12-01 14:39:09
14269
14
原创 TensorRT 学习(二):Pytorch 模型转 TensorRT C++ 流程
选取MLP和LeNet两个简单的例子,学习Pytorch模型转C++的流程,以及相关TensorRT C++ API。
2022-11-15 14:47:40
941
原创 Python OpenCV 绘图
使用 Python OpenCV 绘图相关 API 学习笔记,补充一些官网教程中没有的细节,画个篮球场作为实例训练。
2022-07-09 15:02:42
1419
原创 C语言——汉诺塔问题(移动步骤、步骤数量、实现真正移动)
C语言解决汉诺塔问题,包含递归解题思路和代码实现、移动步骤数量计算、实现真正的汉诺塔移动。
2022-05-16 15:56:06
2438
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人