自定义博客皮肤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的博客

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

  • 博客(507)
  • 资源 (77)
  • 收藏
  • 关注

原创 知识蒸馏综述及代码

全称:Distilling the Knowledge in a Neural Network发表:NIPS14最经典的,也是明确提出知识蒸馏概念的工作,通过使用带温度的softmax函数来软化教师网络的逻辑层输出作为学生网络的监督信息,使用来衡量学生网络与教师网络的差异,具体流程如下图所示(来自Knowledge Distillation A Survey)对学生网络来说,一部分监督信息来自hard label标签,另一部分来自教师网络提供的soft label。

2024-02-07 10:16:38 157

原创 pytorch 利用Tensorboar记录训练过程loss变化

import ostry:except:passtry:num = 5else:num = 15except:passplt.cla()(1) 首先利用类的构造函数__init__, 实例化的对象self.writer,并将网络结构图添加到self.writer中。其中__init__方法接收的参数包括,保存log的路径log_dir以及模型model和输入的shapetry:except:pass(2) 记录每个epoch的训练损失loss以及验证val_loss。

2024-02-02 23:43:54 1199

原创 python tqdm进度条详解

是 Python 进度条库,可以在 Python 长循环中添加一个。(optional);,用于定义进度条的具体格式,所包含的具体数据信息;基于新的bar_format格式,重新封装了。,是一个快速、扩展性强的进度条工具库。下面主要介绍这个参数的具体用法;如果没有传入可迭代对象,可以使用。传参,在实际中应用的更加普遍。进行了设置,没有使用原有的。格式, 简化了显示内容。用户只需要封装任意的。iterable为空。的参数,并且全部都是。前缀信息(desc)代码中将tqdm中的。指定迭代总数,并配合。

2024-02-02 22:20:49 1358

原创 语义分割(3):损失函数解析

容易学习的样本模型可以很轻松地将其预测正确,模型只要将大量容易学习的样本分类正确,loss就可以减小很多,从而导致模型不怎么顾及难学习的样本,交叉熵损失函数忽略了预测值和目标值之间的相似性,并且对于极端的像素值不够敏感。,这种损失会逐个检查每个像素,将对每个像素类别的预测结果(概率分布向量)与我们的。,对于语义分割更多的是前景区域的样本远小于背景区域。其中(1),(2)实现的是log_softmax计算,(3)实现的是。, 经过以上3步计算,得到最终的交叉熵损失的计算结果。损失函数是像素级别的。

2024-01-27 15:57:19 1232

原创 语义分割(2) :自定义Dataset和Dataloader

自定义Dataset需要继承Dataset需要实现__len__和方法,其中__len__返回样本的总数量,方法,根据传入的index,返回对应的图片和标签图片mask主要对图片和标签进行数据增强Dataset的完整代码实现如下:import cv2# 从文件中读取图像# 数据增强# 转化成one_hot的形式# 在这里需要+1是因为voc数据集有些标签具有白边部分# 我们需要将白边部分进行忽略,+1的目的是方便忽略。# 获得图像的高宽与目标高宽# 对图像进行缩放并且进行长和宽的扭曲。

2024-01-26 22:40:19 1061

原创 python高级(1): 迭代器详解

在Python中从头开始构建迭代器很容易。我们只需要实现这些方法__iter__()和__next__()。__iter__()方法需要返回迭代器对象, 最简单直接返回self,也可以返回新的可迭代对象。如果需要,可以执行一些初始化。__next__()方法必须返回序列中的下一项。在到达终点时,以及在随后的调用中,它必须引发这里,我们展示了一个示例,通过定义一个迭代器,手动实现python的range# 1. 每执行一次next,需要返回一个值。

2024-01-21 16:55:14 882

原创 python 正则表达式学习(1)

正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。

2024-01-21 13:22:37 988

原创 日志记录logging

比如在general.py中定义logger对象LOGGERimport osimport sys= "utf-8":try:import ioelse:")首先通过设置日志级别(在主进程中使用info级别,其他进程error级别),通过将信息打印到控制台,并绑定输出的信息样式Formatter,然后将handler绑定到logger对象上定义的LOGGER 可以全局使用,包括等等中使用,使用时候从general中导入LOGGER即可。

2024-01-20 18:29:25 912

原创 hasattr、getattr、setattr

在Python中,hasattr()getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询。这些函数提供了一种方便的方式来检查对象是否具有特定属性,获取属性的值,以及设置属性的值。

2024-01-20 15:40:18 372

原创 语义分割(1): 前后处理代码详解

所以预测结果部分,四周的padding部分就需要截取掉, 上下左右padding的大小为: padding 大小 =获得每个像素的类别预测概率最大的索引,也就是获得对应类别的索引。,计算得到每个像素的颜色值array, 大小为。遍历所有类别,为各个类别位置,赋予对应的像素值。: 模型输入指定的图片大小, 其中通过。,经过letterbox后获得指定。, 得到分割后的3通道的图片。对原始备份,用于可视化绘图。, reshape为。

2024-01-19 15:31:56 1029

原创 python 格式化字符、列表推导式

这两种本质上没有任何区别,个人推荐用。, 很多项目的写法都是采用这种方式。

2024-01-19 10:57:23 479

原创 RFAConv在yolov8上使用代码详解(助力yolov8再涨2个点)

卷积神经网络通过使用具有共享参数的卷积运算显著降低了模型的计算开销和复杂性。在LeNet、AlexNet和VGG等经典网络的驱动下,卷积神经网络现在已经建立了一个完整的系统,并在深度学习领域形成了先进的卷积神经网络模型。作者在仔细研究了卷积运算之后获得了灵感。对于分类、目标检测和语义分割任务,一方面,图像中不同位置的对象的形状、大小、颜色和分布是可变的。在卷积操作期间,卷积核在每个感受野中使用相同的参数来提取信息,而不考虑来自不同位置的差分信息。这限制了网络的性能,这已经在最近的许多工作中得到了证实。

2024-01-18 10:43:36 273

原创 pytorch 通用训练代码讲解(very good)

网络从0开始的训练效果会很差,因为权值太过随机,特征提取效果不明显,因此非常、非常、非常不建议大家从0开始训练!还有,如果你用了cuda,别忘了cuda的随机数种子。,在实际的项目中也经常使用到B导仓库的代码,再次对B导表示敬意,本博客主要对其中训练代码进行解读,对应为。具体来说,每次更新参数时,会对模型参数进行EMA处理,从而。此外,EMA还可以用于计算滑动平均梯度,用于优化器的更新,,用的学习率,迭代次数,batch size 都是一样?的代码,写的简介明了,对于初学者。

2024-01-14 23:07:16 381

原创 F-score 和 Dice Loss 原理及代码

通过看开源图像语义分割库的源码,发现它对Dice Loss的实现方式,是直接调用F-score函数,换言之,Dice Loss是F-score的特殊情况。

2024-01-13 23:41:33 949

原创 语义分割(4): miou指标计算详解

两方面的因素,做到了对于两者的调和,即:既要“求精”也要“求全”,做到不偏科。可作为语义分割系统性能的评价指标。a和b中每个元素代表。由于是多类别,没有负样本,因此。): 把正样本成功预测为正。):把负样本错误地预测为正。):把正样本错误的预测为负。):把负样本成功预测为负。,也就是正确预测的像素个数。为0 ,即没有所谓的负样本。精确率或者精度,指的是。

2024-01-13 22:22:31 1625

原创 yolov8 PTQ和QAT量化实战(源码详解)

量化():是指将高精度浮点数(FP32)转换为低精度(8bit或4bit)整数的过程,它是模型部署中的一种非常重要的优化方法,可以在较少的精度损失下,大幅提供神经网络的效率和性能。目前主流的神经网络量化方式有PTQ和QATPTQ是训练后量化(),无需数据集和训练,直接量化模型权重QAT是量化感知训练(),量化后需要在数据集上继续微调训练。QAT过程中,我们首先需要选择哪些层需要进行finetune训练,并利用FP32对应层的输出作为监督进行训练。

2024-01-07 18:09:34 1422

原创 yolov8知识蒸馏代码详解:支持logit和feature-based蒸馏

特别地,在COCO数据集上对MAP中的RetinaNet检测器(resnet50主干)获得了3.4%的性能提升,在Cityscapes数据集上, 针对mIoU指标,PSPNET(resnet-18 backbone)获得5.81%的性能提升。大部分的KD方法都是通过algin学生网络和教师网络的归一化的feature map, 最小化feature map上的激活值的差异。MGD是一种真正通用的基于特征feature的知识蒸馏方法,它可以用于各种任务,包括图像分类,目标检测,语义分割和实例分割。

2023-12-27 17:33:07 3084 17

原创 Featured Based知识蒸馏及代码(3): Focal and Global Knowledge (FGD)

知识蒸馏已经在图像分类领域取得了不错的效果,然而,目标检测比较复杂,大部分知识蒸馏算法效果不佳。本文指出,在目标检测领域,教师和学生的特征在不同区域差异很大,尤其是在前景和背景区域。如果我们同等地蒸馏它们,特征图之间的不均匀差异将对蒸馏产生负面影响。因此,我们提出(FGD),Focal 蒸馏将图像分离出前景和背景,让学生网络更加关注教师网络的局部的关键像素和通道,Global蒸馏可以重建不同像素之间的关系并将知识从教师迁移到学生,补偿Focal蒸馏缺失的全局信息。由于本文提出的蒸馏算法是。

2023-12-23 19:06:23 546

原创 Bash 脚本学习

bin/bash# 无限循环与强制退出while true # 可使用 : 代替truedoprintf "条件true开始打印 \n"thenprintf "条件true,强制打印结束 \n"breakfidone# 有限循环与自动退出int=0while (( $int

2023-12-21 20:36:40 610

原创 Featured Based知识蒸馏及代码(2):Channel-wise Distillation (CWD)

知识蒸馏用于训练紧凑型(轻量)模型被证明是一种简单、高效的方法,轻量的学生网络通过教师网络的知识迁移来实现监督学习。大部分的KD方法都是通过algin学生网络和教师网络的归一化的feature map, 最小化feature map上的激活值的差异。与以往的方法不同,本文提出了将每个通道的特征图归一化来得到软化的概率图。通过简单地最小化两个网络的通道概率图之间的散度,蒸馏过程更关注每个通道最显著的区域,这对于密集预测任务很有价值。本文对几个密集预测任务进行了实验,包括语义分割和目标检测。

2023-12-19 00:07:50 375

原创 KL散度、CrossEntropy详解

在机器学习和深度学习中,在损失函数中,经常会遇到KL散度交叉熵等概念。信息量熵交叉熵相对熵(KL散度)以及交叉熵损失函数, 这几个概念可以说是递进的关系,后面的概念(KL散度、交叉熵损失等)是建立在前面(信息量、熵)等原理得到的。

2023-12-16 19:03:45 774

原创 轻松实现结构化剪枝DepGraph(2)

MagnitudePruner是一种利用权值大小定位冗余参数的经典算法,相关技术发表于”一文。在文章的开篇,作者讨论了一种神经网络中最基础的依赖关系,可视化如下:在这张图中,我们可以找到两个卷积参数矩阵(Kernel Matrix):第一个卷积层以xix_ixi​作为输入,xi1x_{i+1}xi1​输出特征图;第二个卷积层以xi1x_{i+1}xi1​作为输入,生成特征图xi2x_{i+2}xi2​。

2023-12-16 14:09:51 266

原创 Featured Based知识蒸馏及代码(1): Masked Generative Distillation (MGD)

知识蒸馏已成功地应用于图像检测、分割、分类等任务。目前的蒸馏算法通常会通过模仿教师网络的输出以使学生特征具有更强的表征能力。我们认为提升学生的表征能力并不一定需要通过直接模仿教师实现。从这点出发,我们把模仿任务修改成了生成任务让学生凭借自己较弱的特征去生成教师较强的特征。在蒸馏过程中,我们对学生特征进行了随机 mask,强制学生仅用自己的部分特征去生成教师的所有特征,以提升学生的表征能力。MGD是一种真正通用的基于特征feature的知识蒸馏方法,它可以用于各种任务,包括图像分类目标检测。

2023-12-14 21:05:16 448

原创 EdgeYOLO: anchor-free,边缘部署友好

【代码】EdgeYOLO: anchor-free,边缘部署友好。

2023-12-10 19:50:25 203

原创 YOLO_embedded: YOLO算法快速嵌入式部署

本项目提供c++和python两种语言,详情请见各个文件夹下的README.md。

2023-12-10 19:44:10 371

原创 nn.Sequential|nn.ModuleDict|nn.ModuleList 详解

(1)nn.Sequential、nn.ModuleList、nn.ModuleDict 类都继承自 nn.Module 类。使用需要将定义的层按循序放在括号中就可以;而使用需要将定义的层放在列表[]中,这一点和list是一样的;自然和字典一样,需要一个大括号{}, 再大括号中写入key和value,其中key为层名,value为我们定义的层。

2023-12-10 19:39:10 55

原创 pytorch网络的增删改

如果想把网络的连续几层给删除掉,比如classifier中最后的几层删除掉#------------------删除网络的最后多层--------------------------#可以看出classifier看出最后2层(5,6)被删除掉了可以使用切片的方式,保留不需要被删除的层重新赋给classifier模块,没有保留的就被删除了。

2023-12-10 17:27:46 578 2

原创 yolov6 3.0 网络详解

YOLO系列一直是工业应用中最受欢迎的检测框架,因为其在速度和精度之间的出色平衡。YOLO系列的开创性作品是YOLOv1-3,它开辟了一条单级探测器的新道路,以及后来的重大改进。YOLOv4将检测框架重组为几个单独的部分(主干、颈部和头部),并验证了当时的免费赠品包和特价包,以设计适合在单个GPU上训练的框架。目前,YOLOv5、YOLOX、 PPYOLOE、YOLOv7和最近的YOLOv8都是部署高效检测器的竞争对手。在本版本中,我们对网络设计和训练策略进行了大力更新。

2023-12-09 18:37:57 168

原创 yolov8与yolov5网络对比

针对C3模块,其主要是借助CSPNet提取分流的思想,同时结合残差结构的思想,设计了所谓的C3 Block,这里的CSP主分支梯度模块为BottleNeck模块,也就是所谓的残差模块。同时堆叠的个数由参数n来进行控制,也就是说不同规模的模型,n的值是有变化的。通过C3代码可以看出,对于cv1卷积和cv2卷积的通道数是一致的,而cv3的输入通道数是前者的2倍,因为cv3的输入是由主梯度流分支(BottleNeck分支)依旧次梯度流分支(CBS,cv2分支)cat得到的,因此是2倍的通道数,而输出则是一样的。

2023-12-09 18:14:50 752

原创 支持IOU,GIOU,DIOU,CIOU,SIOU,EIOU,Focal SIOU,WIOU等

【代码】支持IOU,GIOU,DIOU,CIOU,SIOU,EIOU,Focal SIOU,WIOU等。

2023-12-09 17:45:18 62

原创 pytorch 钩子函数hook 详解及实战

这4个 hook 中有是应用于 tensor 的,另外 3 个是针对nn.Module的。模型剪枝是一种通过减少神经网络中的参数来减小模型大小和计算量的技术。在实际应用中,模型剪枝可以有效地减小模型的体积,提高模型的推理速度,从而更适合在嵌入式设备上部署。在PyTorch中,可以使用钩子函数来实现模型剪枝。

2023-12-09 16:46:27 318

原创 设置随机种子保证网络可复现性

为什么使用相同的网络结构,跑出来的效果完全不同,用的学习率,迭代次数,batch size 都是一样?但是如果你使用的是PyTorch等框架,还要看一下框架的种子是否固定了。还有,如果你用了cuda,别忘了cuda的随机数种子。benchmark 设置False,是为了保证不使用选择卷积算法的机制,使用固定的卷积算法。但是,就算是固定的卷积算法,由于其实现不同,也可能是不可控制的,即相同的值,同一个算法卷积出来有细微差别,这个 flag 置为True的话,每次返回的卷积算法将是确定的,即默认算法。

2023-12-03 18:23:06 134

原创 机器视觉最全面试题总结

空洞卷积(Atrous Convolution)也叫做膨胀卷积、扩张卷积,最初的提出是为了解决图像分割在用下采样(池化、卷积)增加感受野时带来的特征图缩小,后再上采样回去时造成的精度上的损失。空洞卷积通过引入了一个扩张率的超参数,该参数定义了卷积核处理数据时各值的间距。可以在增加感受野的同时保持特征图的尺寸不变,从而代替下采样和上采样a. 是普通的卷积过程(dilation rate = 1),卷积后的感受野为3b. 是dilation rate = 2的空洞卷积,卷积后的感受野为5。

2023-12-03 16:22:19 1559

原创 图像分割模型及架构选型介绍(MMSegmentation|sssegmentation等)

图像分割通过给出图像中每个像素点的标签,将图像分割成若干带类别标签的区块,可以看作对每个像素进行分类。图像分割是图像处理的重要组成部分,也是难点之一。随着人工智能的发展,图像分割技术已经在交通控制、医疗影像和人脸识别等多个领域获得了广泛的应用。图像分割是预测图像中每一个像素所属的类别或者物体。语义分割(semantic segmentation):可以理解为一个分类任务,对图片上每个像素进行分类。经典网络:FCN实例分割。

2023-11-26 18:22:36 1113

原创 美团YOLOv6量化部署实战方案

综上所述,本文基于 YOLOv6 V1.0 版本,以 YOLOv6s 为例探讨了基于重参数化结构设计的 2D 检测模型的量化难点和具体方案,在模型精度基本保持的前提下,通过量化加速,提升了约 40% 的 QPS。部署时的预处理优化则额外提升了 214%,极大地提升了工业部署吞吐能力。下表列出了本文尝试的方法及叠加效果。表10 本文使用的量化方案及效果对比本文使用的速度测试环境见表 11, 测试输入 batch size 为 1,尺寸为 640x640。表11 速度测试环境。

2023-11-26 16:38:28 308

原创 makefile 学习(5)完整的makefile模板

这里报错了,因为缺少了cuda的库文件,下面是查看自己cuda版本和找到在哪里的指令,以我的CUDA11.7为例, 去到目录下看看有什么库文件,我们当前需要一个cudaruntime的头文件。这里定义的名称参数 workspace 和 binary 是用来指定工作空间和生成的可执行文件名称的。在这个 Makefile 中,表示生成的可执行文件的名称。这些参数可以在 Makefile 中的其它规则中使用,例如在。表示的是工作空间的目录名称,来看看最后要完成的工程目录。

2023-11-25 22:42:53 296

原创 markdown 公式编辑

参考:https://blog.csdn.net/qq_36584673/article/details/117167861

2023-11-20 13:08:15 251

原创 深度学习loss总结:nn.CrossEntropyLoss,nn.MSELoss,Focal_Loss,nn.KLDivLoss等

交叉熵主要是用来判定实际的输出与期望的输出的接近程度,也就是交叉熵的值越小,两个概率分布就越接近。假设概率分布p为期望输出(target),概率分布q为实际输出(pred),HpqH(p,q)HpqPytorch中的CrossEntropyLoss()函数而是交叉熵的另外一种方式计算得到的:Pytorch中函数的主要是将和NLLLoss最小化负对数似然函数)合并到一块得到的结果(1)首先对预测值pred进行softmax计算:其中softmax。

2023-11-19 23:19:42 369

原创 利用检测结果实现半自动标注

【代码】利用检测结果实现半自动标注。

2023-11-12 23:07:44 714

原创 轻松实现结构化剪枝DepGraph(1)

全文概要:本文主要分为两部分:第一部分介绍工具,一种通用的结构化剪枝库,并通过实例演示如何快速实现结构化剪枝;第二部分侧重Torch-Pruning的底层算法,主要讨论如何建模结构化剪枝中的层依赖,实现任意结构的剪枝。关于设计初衷:这是一个90%时间都花在工程上的工作,原本也是自己在github上写着自娱自乐的项目。在2019年在做某项目时,需要对完成多个不同架构网络的结构化剪枝,然而实际操作后发现每一个网络都需要重新写专用的代码,顿感不妙。众所周知懒才是第一生产力,于是咱就开始琢磨起了结构化剪枝的自动化。

2023-11-12 15:27:50 615

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 seg tensorRT 部署代码

yolov8 seg tensorRT 部署代码

2024-02-05

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.csdn.net/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.csdn.net/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.csdn.net/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.csdn.net/weixin_38346042/article/details/125329726?spm=1001.2014.3001.5501 2. MobileNet系列(2):MobileNet-V2 网络详解:https://blog.csdn.net/weixin_38346042/article/details/125355111?spm=1001.2014.3001.5501 3.MobileNet系列(4):MobileNetv3网络详解:https://blog.csdn.net/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关注的人

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