自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

@bangbang的博客

专注人工智能、图像分类、目标检测

  • 博客(578)
  • 资源 (46)
  • 收藏
  • 关注

原创 通义Qwen实战(2): vllm框架部署实战

通义千问推荐我们使用vllm推理框架,这是国外开源的针对大模型的推理框架。它区别于直接使用huggingface 或者modescope 调用大模型的代码,使用vllm推理时它的速度会更快,并且显存的时候会下降。它会对模型进行结构化的优化,使得推理时耗费更低的显存和算力。因此,通常大模型的在线服务,不会直接使用huggingface 或modescope提供的api, 而是把底层的transformer模型交给专业的推理框架。vllm 推理框架的官网地址:(1) 通过使用。

2025-03-27 21:41:25 79

原创 通义Qwen实战(1): 环境安装及微调实战

在github上的代码,下载到本地。案例1(1)加载model 和分词器Tokenizegithub 上的qwen源码,它默认是支持下载的模型,虽然它把训练好的模型同时支持huggingface和modescope。如果使用的是transformers 这个库导入模型加载器和分词器,那么它是从huggingface下载的,它会很卡甚至超时。

2025-03-16 18:26:36 64

原创 VLM-E2E(1): Senna论文解读

端到端自动驾驶在大规模数据的支持下展现了强大的规划能力,但在复杂和罕见场景中仍因常识有限而表现不佳。相比之下,大规模视觉-语言模型(LVLMs)在场景理解和推理方面表现出色。未来的发展方向在于结合这两种方法的优势。以往使用 LVLMs 预测轨迹或控制信号的方法效果欠佳,因为 LVLMs 并不擅长精确的数值预测。本文提出了Senna,一种将 LVLM(Senna-VLM)与端到端模型(Senna-E2E)结合的自动驾驶系统。。Senna-VLM 采用多图像编码方法和多视角提示,以实现高效的场景理解。

2025-03-12 18:36:29 55

原创 Lora模型微调(2):代码实战

其中lora_layer 对象是LoraLayer实例化得到,它需要传入原先的layer,以及该layer对应的输入和输出的channel,以及秩数r 和加权因子alpha。在推理的时候,如果继续保留这样的Lora层,会发现推理的算力是增加的。通过以上代码,就完成了将模型中w_k,w_q,w_v层的Linear层实现替换为经过Lora封装的lora_layer的实现。,可以封装任意需要Lora作用的层,只需要传入原来的层raw_linear即可,可以即插即用,使用非常方便。

2025-03-09 17:37:33 74

原创 OmniDrive(2):环境搭建

项目中使用的是全量的数据集(full dataset v1.0), 数据量比较大,训练验证(trainval) + test 总计200多G的数据,单独一个个下载会比较慢。参数,否则安装的时候会自动卸载已安装好的torch,重新安装最新版本的torch,这是不允许的。在cuDNN官网下载,默认下载的是最新版本的cuDNN,我们这里点击。,== 博文中详细介绍了完整的cuda和cudnn的安装过程==分析: 这是因为yapf 安装的版本不对,需要安装特定的版本。出现训练的loss变化,就说明可以正常训练了。

2025-03-08 17:10:42 64

原创 OmniDrive(1): 论文解读

papers: OmniDrive: LLM-Agent for Autonomous Driving with 3D Perception, Reasoning and Planninggithub: https://github.com/NVlabs/OmniDrive近年来,多模态大语言模型(MLLMs)[1,24,31] 的快速发展及其卓越的推理能力,推动了端到端自动驾驶 [6,39,46,52,58] 领域的一系列应用。然而,将其能力从二维理解扩展到复杂的三维空间是一个关键挑战,只有克服这

2025-03-08 17:09:12 75

原创 手写LLM(2): 模型训练及代码详解

比如左边输入的是问题,右边对应生成答案。给出标题,在输入的时候,会将输入拼接为< <|im_start|>user>虞美人·曲阑深处重相见虞美人·曲阑深处重相见<|im_end|><|im_start|>assistant, 然后模型就会输出对应标题的诗词,直到遇到停止的token就会结束。openai在发明chatgpt的时候,它将encoder层去掉了,只保留了右边decoder部分, 它是一个decoder-only的模型,它不依赖于标注数据,是一个自回归的模型,利用网上的海量数据进行训练。

2025-03-08 16:35:48 343

原创 手写llm(1):实现BPE Tokenizer

以通义千问为例说明,来介绍LLM大模型中Tokenizer的使用。messages,在通义千问实现问答的时候,可以看到会使用tokenizer,通过加载预训练好的tokernizer权重来创建tokenizer对象,通常tokenizer是跟模型配对的,不同模型对应不同的分词器。通过向tokenizer 中传入一段文本text, 然后会返回一段分词后的id, 这些数字id对应这段text中的一个个单词。接着这些id对应为。

2025-03-08 16:34:52 45

原创 Lora模型微调(1): 原理讲解

参数高效微调(Parameter-Efficient Fine-Tuning,PEFT) 是一种在深度学习模型微调过程中,通过仅更新少量参数来适应新任务的技术。这种方法在保持模型性能的同时,显著减少了计算资源和存储需求,特别适用于大模型(如 GPT、BERT 等)的微调场景。Lora技术是为了规避大模型在反向传播时,显存资源及算力的消耗。它通过将一个大矩阵WWW, 分解为两个小矩阵WAW_AWA​和WBW_BWB​表示,通过定义秩数rrr来控制参数量,并且满足WA×W。

2025-03-08 16:24:05 293

原创 python 变量类型注释

为什么使用类型注释?可读性:类型注释可以让代码的意图更加明确。开发人员可以一眼看出一个变量或函数的预期类型。静态分析:工具如 mypy 可以静态分析 Python 代码,检查类型错误,帮助及早发现潜在的 bug。IDE 支持:许多现代 IDE(如 VSCode、PyCharm)会利用类型注释提供代码补全、错误提示等功能。文档生成:类型注释可以用来生成文档,帮助其他开发者理解代码的使用。Python 类型注释使得代码更加清晰和易于理解,能够提高代码的质量和可维护性。

2025-02-19 23:23:22 794

原创 md5sum的使用及高级使用详解

md5sum 是一个轻量级、高效的工具,广泛用于文件完整性校验。高级用法结合等命令,可以更灵活地处理批量文件。为更高的安全性需求,可使用sha256sum或其他替代工具。

2025-01-10 19:05:08 1312

原创 使用osmnx生成sdmap数据

OSMnx 是一个强大的 Python 库,用于从 [OpenStreetMap (OSM)](https://www.openstreetmap.org/) 下载地理空间数据并进行图形化分析。它支持自动从 OSM 获取和分析道路网络、建筑物、兴趣点 (POIs) 等数据,并且可以与 NetworkX 无缝集成。

2025-01-10 18:31:16 149

原创 python del的使用详解

del 用于删除变量、列表元素、字典项、对象属性等。在使用 del 删除元素时,确保索引或键存在,避免引发异常。del 是用来显式删除对象的,但并不立即释放内存,内存管理依赖于垃圾回收。

2025-01-07 15:01:42 715

原创 onnx graph surgeon 的使用详解

更加方便的添加/修改onnx节点更加方便的修改子图更加方便的替换算子底层使用的是onnx.helper, 在onnx.helper的基础上进行了封装安装(1) 修改onnx- 合并算子可以看到左边的onnx的节点有输入, 很明显min,max可以同时合并为一个算子clip。在tensorRT进行层融合之前,我们可以先做onnx上的优化,使用onnx graph surgeon 来修改节点,可以得到右边合并算子之后的onnx。(2) 简化LayerNorm。

2024-12-15 18:28:33 222

原创 pdb调试器详解

pdb 是 Python 内置的交互式调试工具,可以帮助开发者逐步调试代码、查看变量、分析问题。pdb 是一个强大的调试工具,通过熟练使用断点、单步执行、调用栈分析等功能,可以帮助快速定位和解决问题。如果程序抛出了异常,可以用 bt 命令查看是在哪一层函数中出现了问题,从而快速定位问题。如果程序包含多层函数调用,bt 可以帮助明确每一层函数调用的顺序,以及当前所处的位置。运行 Python 脚本时,加上 -m pdb,会在发生异常时自动进入调试模式。程序会在脚本的第一行暂停,可以逐步执行代码。

2024-12-14 22:31:11 1444

原创 onnx算子的注册详解及案例 (完整版)

在对swim-transformer导出onnx时,尽管我们已经安装官方文档将需要的库的安装好了,但在导出onnx时会发生下列的问题提示, 错误提示opset9不支持,但我们自然就想到通过提升opset版本,比如提升到12,13。结果发现导出onnx还是会报错从代码中发现我们有一个torch.roll算子,在onnx官方文档中发现onnx暂时是不支持该算子的导出的。return x# PyTorch的推理# onnxruntime的推理。

2024-12-14 20:24:29 353

原创 将欧拉角转换为旋转矩阵

在计算机视觉、机器人学和3D图形学中,欧拉角描述了物体在三维空间中的旋转,可以用三个角度依次描述物体绕。这三个角有常用的命名约定,不同领域可能会使用不同术语。的旋转角度,分别对应Roll,Pitch,Yaw三个角。的旋转角度,分别对应三个独立旋转矩阵。欧拉角通常指沿着固定轴。

2024-11-28 09:58:13 542

原创 Dataset 和 Dataloader 详解

(1)处理变长序列如果一个批次的数据具有不同长度,例如 NLP 中的句子或时间序列,默认的 collate_fn 会报错。需要自定义逻辑,使用 填充(padding) 或其他方法统一长度(2)支持复杂数据结构默认的 default_collate 无法处理某些类型的数据,例如自定义嵌套数据或稀疏数据,需要编写自定义逻辑。(3)特殊预处理在将数据输入模型前,可能需要动态调整或预处理(例如数据增强、归一化等)。

2024-11-24 17:46:35 2996

原创 torch.mm、torch.bmm、torch.matmul

torch.matmul 是更通用的矩阵乘法操作,它支持多维张量,并能够自动广播。适用场景: 当需要对多个矩阵进行批量乘法时使用。根据输入维度和操作需求,选择合适的矩阵乘法函数!,即一批二维矩阵之间的矩阵乘法。

2024-11-22 15:52:58 509

原创 Dropout 和 BatchNorm 在训练和验证中的差异

在验证或推理阶段,必须调用 model.eval(),否则 Dropout 和 BatchNorm 的行为会与训练阶段一致,导致验证结果或推理结果不正确。如果模型中没有 Dropout 或 BatchNorm,则 model.eval() 不会改变模型的行为。

2024-11-17 00:02:09 1021

原创 模型推理: model.eval()和torch.no_grad()的使用说明

两者需要配合使用:model.eval() 确保模型行为正确,with torch.no_grad() 提高推理效率。如果只使用 model.eval() 而没有 with torch.no_grad(),会导致不必要的梯度计算,增加内存和时间开销。如果只使用 with torch.no_grad() 而没有 model.eval(),模型行为可能仍然是训练模式,导致结果不正确。因此,在推理代码中,建议始终按照以下顺序model.eval() # 确保模型行为正确。

2024-11-16 17:51:20 603

原创 利用grid sample优化BevDet

input:输入的特征图,形状为。grid:形状为的网格张量,对应为采样的归一化坐标。这是一个浮点数张量,其中每个位置存储目标输出的采样点。grid 的最后一维表示目标位置的 (x, y) 坐标,范围在 [-1, 1] 之间。mode:插值模式,通常是 bilinear 或 nearest。bilinear:双线性插值(默认值)。nearest:最近邻插值。padding_mode:处理超出边界的模式,zeros, border, reflection。

2024-10-20 20:46:47 523

原创 tensor.new_zeros 和 tensor.new_tensor

tensor.new_zeros 和 tensor.new_tensor 都用来创建一个新的tensor,。

2024-10-20 14:48:22 669

原创 types.MethodType

types.MethodType 是 Python 中的一个内置函数,它用于,使其成为该对象的方法。这在时非常有用。

2024-10-13 18:37:14 311

原创 setup.py详解 及 pip install用法

使用 setup() 函数定义包的基本信息,如名称版本、作者、许可证等。# 读取 requirements.txtsetup(install_requires=install_requires, # 指定项目运行所需的依赖列表],(1) 基本的信息说明name: 指定包的名字, 如mmdet3dversion: 指定包的版本, 如’0.1’author和: 指定作者及邮箱 (可选参数,可填可不填): 对包的简短的描述信息: 一般直接显示README.md。

2024-09-22 22:18:23 804

原创 bev pool 原理及代码讲解

个视锥点对应的3d坐标(voxel/bev坐标系), 其中Nprime = B x N x D x H x W(相当于视锥点个数)。将bev特征沿着Z方向(dim=2)拍平,得到shape大小为(B,C,X,Y)大小的bev特征,比如(1,80,200,200)。bev_pool的目的是。对于感知算法而言,我认为比较重要的是要了解在Bev视角下,x轴和y轴方向的感知距离,以及Bev网格的大小。(1)基于 geom_feats在bev网格中的位置(x,y,z)和batch_id,对其进行排序。

2024-09-17 23:27:33 434

原创 算子加速(3):自定义cuda扩展

编写CUDA扩展的一般策略是首先编写一个C++文件,该文件定义了将从Python中调用的函数,并使用pybind11将这些函数绑定到Python。此外,这个文件还将声明在CUDA(.cu)文件中定义的函数。C++函数会进行一些检查,并最终将其调用转至CUDA函数。在CUDA文件中,我们编写我们实际的CUDA内核。包将负责用C++编译器(如gcc)编译C++源文件,以及用NVIDIA的nvcc编译器编译CUDA 源文件。这确保每个编译器都负责编译它最擅长的文件。最终,他们将链接成一个共享库。

2024-09-15 22:56:40 352 1

原创 算子加速(2):自定义c++扩展

(1) 用纯pytorch和python 实现我们需要的功能,看效果再决定要不要进一步优化(2) 明确优化方向,用c++(或cuda)重写部分代码(3) 用纯c++实现(4) 将模型的部分移动到CUDA内核来进一步加速,以便从GPU提供的大规模并行中受益。

2024-09-08 20:45:32 355

原创 算子加速(1): torch.autograd.Function的使用

在做Bev项目时,我们会发对于一些计算量非常大的算子,通常会通过CUDA进行加速实现,将cuda计算封装到一个动态库.so,然后提供给python调用,相对于原先的python加速能显著的提升计算效率。比如bev_pool就是通过这种方式实现离线计算和cuda并行,从而速度提升了几个量级bev_pool是Bev算法的关键的运算瓶颈,针对该问题工程上做了大量的性能优化,包括离线运算和cuda并行计算,从而实现bev_pool的计算加速。代码示例如下x,B,D,H,W,return out。

2024-09-08 17:46:17 545

原创 打印参数信息

【代码】打印参数信息。

2024-09-06 15:00:29 114

原创 自动驾驶坐标转换(代码)

这两种方式都可以进行ego2bev转换,区别他们的坐标圆点不一样,从而图像会出现颠倒。lidar2cam的变换矩阵和lidar2ego 变换矩阵的获取,基本是一摸一样的的。(1)计算lidar2ego 变换矩阵。其中rotation 4元数,可以调用。经过转换,就将bev转到ego坐标系。(2) 计算转换矩阵(R+T)包,将它转换为矩阵的形式`(1) 在bev空间上绘制。(2) 在rv图像上绘制。为圆点的bev 坐标系。为圆点的bev 坐标系。(1) 以bev的。(2) 以bev的。

2024-09-05 15:12:43 275

原创 tensor和numpy 转换

而torch.as_tensor()则是一个折中的选择,它在可能的情况下避免复制,但在必要时会复制并转换数据类型。,可以接受多种类型的输入,包括列表、元组、NumPy 数组、标量值,甚至是另一个张量。这个方法会创建一个新的张量,并且复制NumPy数组中的数据。这意味着,原始的NumPy数组和新创建的张量是完全独立的,修改其中一个不会影响另一个。torch.as_tensor函数提供了一个灵活的方式来创建张量,并且可以指定数据类型和设备,这对于深度学习模型的输入数据准备非常有用。这个方法会创建一个新的张量,

2024-09-05 14:56:15 1975

原创 np.c_ 和 np.r_ 的使用

是 NumPy 库中的一个方便的索引工具,用于沿着第一个轴(行)连接数组。它常用于将多个数组或数组片段合并成一个更大的数组。np.r_ 可以处理一维或多维数组,并且可以一次性处理多个数组。np.r_ 是一个非常灵活的工具,可以用于各种数组合并的场景。这里,array1, array2, …, arrayN 是要连接的数组。这里,array1, array2, …, arrayN 是要连接的数组。在bev项目中,经常需要给数据增加一个batch_id,此时就可以使用。(3) 合并多个数组。

2024-09-04 11:32:27 829 1

原创 python 多进程apply_async、map_async、pool.imap的用法

多进程

2024-09-01 15:18:23 1271

原创 pybind使用详解: python 调用c++代码

对于一些运行很慢的程序,我们就可以使用c++去实现,利用pybind11将接口暴露给python去调用,这样就实现代码编写快速,程序运行高效的目的。主要是对c++实现的类如何进行python的绑定,这样我们就可以在python 中直接创建C++的类,或调用相应的函数功能。,甚至是更快的速度。这里实现一个最简单的pybind的案例,用C++实现一个加法运算,python去调用c++的加法运算。,对大矩阵运算非常快),其次是c++实现的,python原生的矩阵乘法使用了惊人的1499ms。

2024-08-31 20:35:42 669

原创 vscode c++和cuda开发环境配置

通过网盘分享的文件:vscode-cuda-cpp-demo-0828.zip。,从而在调试的时候,能够对修改过的最新代码进行及时的编译。对应的bear版本相对比较低,一般为2.4左右。配置好函数跳转,下一步配置GDB调试(debug)了,同时鼠标放在该函数上会有函数的提示信息。(2)根据源文件的目录,可以修改如下代码。此时原先不能高亮显示,或跳转的函数,就能。(4) make clean 命令。(2)bear make 命令。则对应的bear版本一般为。(1) make 命令。编译器的option。

2024-08-28 22:47:27 1015

原创 git的使用:创建分支并提交

在终端或命令行界面中,使用 git branch 命令来创建一个新的分支。在新分支上进行你的代码更改。这可能包括添加新文件、修改现有文件等。在Git中创建一个新的分支并将代码上传到这个新分支的基本步骤如下。这条命令不仅会推送分支,还会设置上游跟踪分支,(5) 推送新分支到远程仓库。(3) 进行你的更改。

2024-08-26 12:29:50 1607

原创 CUDA-BEVFusion(1): 环境安装

将TensorRT 8.5.3的安装包下载下来,注意需要注册一个Nvidia账号,登入账号才可以下载。, 因此可以11.8的CUDA 版本,尽量下载最新的。, 当我们想用另一个版本的cuda,我们将cuda的软链接指定到另一个版本就可以了。, 然后选择TensorRT 8.5 GA进行下载(GA 表示稳定版本)官网下载,默认下载的是最新版本的cuDNN,我们这里点击。,TensorRT是依赖于CUDA和CUDANN的。(2) 首先解压下载的cudnn包并进入该目录下。(1) 首先解压下载的cudnn包。

2024-08-25 19:56:28 397

原创 yaml文件写法和加载(1)

yaml 是专门用来写配置文件的语言,个人认为比yaml比json格式更方便。在Python中,使用PyYAML库来处理YAML文件是一种常见的做法。YAML(YAML Ain’t Markup Language)是一种数据序列化格式,它以。

2024-08-13 11:25:09 1600

原创 torch.where的使用

torch.where 函数在 PyTorch 中是一种条件索引操作

2024-08-09 14:07:35 348

车道线Bev模型学习文档

车道线Bev模型学习文档

2025-03-10

MIOU涨5.6个点:语义分割知识蒸馏源码

教师模型Deeplab-V3 + (ResNet-101) miou为77.85 学生模型Deeplab-V3 + (ResNet-18) miou为67.5 经过蒸馏后,学生模型Deeplab-V3 + (ResNet-18) miou提升5.6个点,达到73.09。 比Student + LAD 和Student + CIRKD高大概2个点,比Student + DistKD高三个点 本项目提供的蒸馏方法,代码简单易用。

2024-03-20

yolov8 剪枝源码(集成多种剪枝策略)

支持以下的剪枝方法,代码一键运行,并配有md文档说明: (1) lamp 剪枝 (2) slimming 剪枝 (3) group slimming 剪枝 (4) group hessian 剪枝 (5) Taylor 剪枝 (6)Regularization 剪枝 等等

2024-03-20

yolov8 多任务(目标检测+可行驶区域分割+车道线分割)

(1)开发了一个轻量级模型,能够将三个任务集成到一个统一模型中。这对于需要实时处理的多任务特别有利。 (2)设计了一个轻量级、简单且通用的分割头。对于同一类型的任务头,我们有统一的损失函数,这意味着我们不需要针对特定​​任务进行定制设计。它仅由一系列卷积层构建。

2024-01-07

SOTA 跟踪论文:BoTSORT-OCSORT-StrongSORT 等

SOTA 目标跟踪论文,精度这几篇就够够的了 (1)BoTSORT (2)OCSORT| (3)StrongSORT (4)HybridSORT (5)DeepOCSORT (6)ByteTrack

2023-12-21

yolov8 tracking支持deepocsort、strongsort、bytetrack、botsort等各类跟踪器

1. 项目支持各类SOTA多目标跟踪器,包括BoTSORT、DeepOCSORT、OCSORT、HybirdSORT、ByteTrack、StrongSORT 2. 项目支持分割、检测、姿态估计的实时跟踪Tracking 3. 项目不仅支持yolov8,还集成了包括集成了yolo-nas、yolox、yolov8-pose等检测、分割、姿态估计模型来

2023-12-21

yolov8 知识蒸馏源码

1. 本项目支持多种蒸馏方式,并对蒸馏代码进行详解,比较容易上手。支持 logit和 feature-based蒸馏以及在线蒸馏: (1)在线蒸馏 (2)logit 蒸馏 (3)mimic 特征蒸馏 (4)cwd: channel-wise distillation 特征蒸馏 (5)mgd: masked generative distillation 特征蒸馏 2. 代码通俗易懂,易于掌握

2023-12-18

YOLO 知识蒸馏学习及落地部署(v5和v8)

CWD、MGD、以及Mimic异构蒸与自蒸馏随便选择 项目支持yolov5,yolov8 的知识蒸馏; OTA, 解耦头的灵活配置

2023-12-10

Yolo v1-v8 改进点汇总

Yolo v1-v8 改进点汇总

2023-12-09

yolov8 PTQ和QAT量化源码

1.使用pytorch_quantization对yolov8进行量化: 包括ptq量化、敏感层分析、qat量化 2.修改ptq、qat、敏感层分析配置参数后直接运行 python yolov8_ptq_int8.py 其中: (1) quant_flow_ptq_int8.py是PTQ int8量化脚本 (2) quant_flow_qat_int8.py 是QAT int8量化脚本 (3)quant_flow_ptq_sensitive_int8.py 是敏感层分析的脚本

2023-12-09

零基础掌握yolov8剪枝

Before Pruning: MACs=129.092051 G, #Params=68.229648 M After Pruning: MACs=41.741203 G, #Params=20.787528 M

2023-11-26

车道线UFLD-v2落地量化部署代码

1. UFLD系列的车道线检测算法一直以来都是速度和精度的完美均衡而著称 2. 代码包括了全流程的算法落地方案,包括: (1)Int8的模型量化 (2)基于TensorRT来部署int8量化模型 (3)同时也适配FP32和FP16模型

2023-11-26

单目3D SMOKE PTQ量化代码

1. 单目3D SMOKE PTQ量化精度几乎无损 2. 工业级量化方法

2023-11-26

BevDet的PTQ量化代码

1. 环视BEV 3D目标检测算法int8量化 2. BevDet的PTQ int8 量化,精度几乎无损

2023-11-26

mmsegmentation中文文档

MMSegmentation是openmmlab项目下开源的图像语义分割框架,目前支持pytorch,由于其拥有pipeline加速,完善的数据增强体系,完善的模型库,作为大数据语义分割训练及测试的代码框架是再好不过了。

2023-11-26

yolov5 剪枝和量化,代码一键运行

1. 通过剪枝压缩了70%以上,几乎不影响精度 2. 提供量化感知训练的代码及tensorrt部署的代码

2023-09-16

yolov7 ptq和qat训练及tensorrt部署

内容包括: (1) yolov7 的ptq和qat 的python 训练脚本 (2) 提供完整的基于tensort 的c++ 部署代码 (3) 详细的代码注释,帮助理解代码

2023-09-16

labelme 分割转换(voc coco) 及可视化

- labelme2coco.py - labelme2voc.py - labelme2voc_obj.py

2023-05-17

yolov7旋转目标检测完整代码

markdown有详细的代码使用说明,可以很容易运行代码 1. 提供检测的数据集 2. 支持各类数据增强 3. 支持TensorRT部署 4. 支持多GPU训练及单GPU或CPU训练

2023-05-13

yolov8s模型进行剪枝源码

实现步骤: 1. yolov8s模型预训练 2. 模型稀疏化sparsity 3.剪枝 4. finetune 经过键枝后,finetune60个epoch达到原模型迭代52个epoch的mAP值0.78,模型的大小减少了2/5。

2023-05-13

Tensorrt部署方案

1. 如何正确导出onnx 2. 动态bath和宽高 3. 自定义插件 4. 高性能低耦合部署方案

2023-04-18

基于Tensorrt的yolov5 实例分割源码

代码包括 - 1. onnx转 tensorrt engine - 2. 基于engine 的模型推理 - 3. 测试的模型文件

2023-04-18

各种卷积计算性能对比(Conv,DwConv,GhostConv,PConv,DSConv,DCNV)

各种卷积计算性能对比(Conv,DwConv,GhostConv,PConv,DSConv,DCNV),包括推理时间,GFlops,FPS

2023-03-26

基于yolov5的PTQ和QAT量化完整代码

1. quant_flow_ptq_int8.py是PTQ int8量化脚本 2. quant_flow_qat_int8.py 是QAT int8量化脚本 3. quant_flow_ptq_sensitive_int8.py 是敏感层分析的脚本

2023-03-18

模型量化校准代码: max,histogram,entropy

模型量化校准代码: max,histogram,entropy

2023-03-18

基于ncnn部署yolov5及量化

文件中包括以下内容: 1. yolov5 转ncnn的权重文件 2. ncnn的依赖库 3. 完整的源代码

2023-02-15

图像分割FCN算法的源码及项目实战

图像分割FCN算法的源码及项目实战 1. 项目博客: https://blog.youkuaiyun.com/weixin_38346042/article/details/128719053?spm=1001.2014.3001.5502

2023-02-04

模拟TensorRT int8量化代码

模拟了2个conv的8bit量化工作

2022-11-14

基于coco数据集的yolox模型预训练权重

yolox模型预训练权重

2022-11-07

基于YOLOv7的人体姿态估计讲解及源码

YOLOv7是YOLO家族中第一个包含人体姿态估计模型的。

2022-11-04

YOLOX原理及无人机检测项目实战源码

利用自定义无人机数据集训练YOLOX 数据修改 搭建YOLOX训练环境 使用Conda创建虚拟环境 安装Jupyter和ipykernel 克隆YOLOX GitHub库 安装依赖包 自定义数据集训练 YOLOX推理测试效果 结论

2022-11-04

模型轻量化-YOLOv5无损剪枝

运行顺序: 1. 原始训练,得到一个最优mAP等评价指标 2.通过调整BN稀疏值sr,运行train_sparity.py稀疏训练得到一个稍微小的模型 3. 将训练好的last.pt 放到prune.py 中进行剪枝,控制剪枝率; 4. Finetune得到最优模型

2022-10-28

基于yolov5的目标检测和双目测距源码

包括: 1.yolov5 +sgbm算法集成 2. C++实现sgbm 3.python 实现sgbm 4. jetson tensort 部署 项目参考博客:https://blog.youkuaiyun.com/weixin_38346042/article/details/126807379?spm=1001.2014.3001.5501

2022-10-28

pytorch多GPU并行训练教程及源码

多GPU启动指令说明: 1.如果要使用train_multi_gpu_using_launch.py脚本,使用以下指令启动 python -m torch.distributed.launch --nproc_per_node=8 --use_env train_multi_gpu_using_launch.py其中nproc_per_node为并行GPU的数量

2022-10-16

基于yolov5的知识蒸馏实战源码

知识蒸馏是提升网络性能的方法,通过一个教师网络指导学生网络的学习,将教师网络学习到的知识迁移到学生网络上。 整个项目包括: 1. 完整知识蒸馏原理教程及环境配置说明 2. 提供完整的数据及处理代码 3.提供完整的yolov5蒸馏代码 只要按照教程说明操作,就能理解蒸馏代码并掌握 整个知识蒸馏代码包括: 1. 完整知识蒸馏原理教程及环境配置说明 2. 提供完整的数据及处理代码 3.提供完整的yolov5蒸馏代码 只要按照教程说明操作,就能理解蒸馏代码并掌握 项目博客:https://bangbang.blog.youkuaiyun.com/article/details/126065848

2022-10-13

基于yolov5的模型剪枝项目实战源码

对yolov5s进行稀疏化训练并剪枝,模型参数下降80%,mAP精度几乎不受影响

2022-10-13

makefile从入门到项目编译实战

参考B站视频: https://www.bilibili.com/video/BV1Xt4y1h7rH/?p=3&spm_id_from=333.880&vd_source=d817bda3198969666552c553deaea683

2022-10-13

利用SGBM算法进行双目测距

利用SGBM算法进行双目测距

2022-09-11

图像分类MobileNet系列源代码:v1-v3

完整的MobileNet v1-v3的源代码,包括模型脚本、训练以及预测脚本。并有完整的博客介绍: 1. MobileNet系列(1) :MobileNet V1网络详解:https://blog.youkuaiyun.com/weixin_38346042/article/details/125329726?spm=1001.2014.3001.5501 2. MobileNet系列(2):MobileNet-V2 网络详解:https://blog.youkuaiyun.com/weixin_38346042/article/details/125355111?spm=1001.2014.3001.5501 3.MobileNet系列(4):MobileNetv3网络详解:https://blog.youkuaiyun.com/weixin_38346042/article/details/125470446?spm=1001.2014.3001.5501

2022-07-05

深度学习图像分类花朵数据集

包括四类花朵:daisy 、dandelion、roses、sunflowers ### 使用步骤如下: * (1)在data_set文件夹下创建新文件夹"flower_data" * (2)点击链接下载花分类数据集 [http://download.tensorflow.org/example_images/flower_photos.tgz](http://download.tensorflow.org/example_images/flower_photos.tgz) * (3)解压数据集到flower_data文件夹下 * (4)执行"split_data.py"脚本自动将数据集划分成训练集train和验证集val ``` ├── flower_data ├── flower_photos(解压的数据集文件夹,3670个样本) ├── train(生成的训练集,3306个样本) └── val(生成的验证集,364个样本) ```

2022-07-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除