自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(569)
  • 资源 (1)
  • 收藏
  • 关注

转载 解决RuntimeError: one of the variables needed for gradient computation has been modified by an inp

1)找到网络模型中的 inplace 操作,将inplace=True改成 inplace=False,例如torch.nn.ReLU(inplace=False)2)将代码中的“a+=b”之类的操作改为“c = a + b”,a=b改成a=ab,a/=b改成a=a/b。3)训练代码的optimizer.step()函数放到loss.backward()后面。4)pytorch降版本到1.4或1.5。需要更新的参数被原地操作更改了。可能是以下几种情况导致。

2023-04-23 17:50:45 646

转载 轻量级网络Ghostnet(GhostConv(幻影卷积)、Ghost BottleNeck)详解

该论文提供了一个全新的Ghost模块,旨在通过廉价操作生成更多的特征图。基于一组原始的特征图,作者应用一系列线性变换,以很小的代价生成许多能从原始特征发掘所需信息的“Ghost”特征图(Ghost feature maps)。该Ghost模块即插即用,通过堆叠Ghost模块得出Ghost bottleneck,进而搭建轻量级神经网络——GhostNet。

2023-04-22 15:43:56 20574 2

原创 什么是分组卷积、深度可分离卷积?附上深度可分离卷积代码

分组卷积,g = in = out,此时每个卷积核只负责一个通道,生成的特征图之间不存在信息交换(即在通道维度不存在信息交换)1 x 1卷积,用来实现通道件的信息交换,但在空间层面上缺少信息交流。可以使用 torch.nn.Conv2d() 中的卷积组参数groups,来实现深度可分离卷积。groups 参数是用于控制输入和输出的连接的,表示要分的组数(in_channels 和out_channels 都必须能被 groups 参数整除)。

2023-04-22 15:25:19 2769

原创 什么是计算量flops,什么是参数量params?

计算量对应我们之前的时间复杂度,参数量对应于我们之前的空间复杂度,这么说就很明显了也就是计算量要看网络执行时间的长短,参数量要看占用显存的量其中最重要的衡量CNN 模型所需的计算力就是flops:FLOPS: 注意全大写,是floating point operations persecond的缩写,意指每秒浮点运算次数,理解为计算速度。是一个衡量硬件性能的指标。FLOPs: 注意s小写,是floatingpoint operations的缩写(s表复数),意指浮点运算数,理解为计算量。

2023-04-22 05:47:30 569

原创 Summary输出网络参数详解

【代码】Summary输出参数详解。

2023-04-22 05:26:15 486 2

原创 linux下zip指令压缩文件

因为是目录,所以必须采用递归的形式,yolov7为源文件,.zip为压缩的文件。

2023-04-21 15:54:23 228

原创 Event Camera (事件相机)

事件相机是一种受生物启发的传感器,与传统相机的工作原理有很大的差别。它通过异步事件的方式获取图像,通常使用每个像素的亮度变化来输出异步事件信号,包括位置、光强和时间戳等信息,而与每秒钟采集的帧数没有关系。事件相机具有很多优点,例如快速响应、高动态范围、低功耗、低时延和高精度等,因此在许多应用领域中得到了广泛的应用。其中一个典型应用是自动驾驶领域,事件相机可以实现车辆环境的实时监测和决策,如识别道路标记、障碍物检测、行人跟踪等。

2023-04-21 01:42:18 1156

原创 解决报错:train.py: error: unrecognized arguments: --local-rank=1 ERROR:torch.distributed.elastic.multipr

由上图可以看出是–local_rank 与 --local-rank不一致导致的,追究原因,竟然是torch2.0版本launch.py里面写的全是–local-rank,而本yolov7源码用的是–local_rank。更换torch版本,我把torch版本换成1.13就好了。

2023-04-20 21:41:23 13648 9

原创 python里面单双下划线的区别

Python中存在一些特殊的方法,有些方法以双下划线 “__” 开头和结尾,它们是Python的魔法函数,比如__init__()和__str__等等。从图中可以看到双下划线开头的变量,Python自动在前面加上了 “_class” 的前缀,所以我们访问时也要加上相应的前缀才能正常访问。__name__:前面和后面加上下划线代表着是系统定义的名字。表示当前模块执行过程中的名称,如果该模块执行,则__name__的值为__main_,如果模块是被导入的,则__name__的值为被导入的模块的模块名字。

2023-04-20 01:15:05 1218

原创 365天深度学习打卡 YOLOv5白皮书-第Y4周:common.py文件解读

输入的卷积特征图的大小为(w,h),第一层空间金字塔采用4x4的刻度对特征图进行划分,其将输入的特征图分成了16个块,每块的大小为(w/4, h/4);YOLOV5中使用NMS算法用来移除一些网络模型预测时生成的多余检测框,该算法的核心 思想是指搜索局部得分最大值预测并移除与局部最大值预测框重叠度超过一定阈值的检测 框,需要注意的是,NMS算法对所有待检测目标类别分别执行。Focus模块是作者自己设计出来,为了减少浮点数和提高速度,本质是将图像进行切片,将原图像的宽高信息切分,聚合到channel通道中。

2023-04-20 00:56:24 519

原创 为什么深度学习网络越往后卷积核通道数越大

在深度神经网络中,通常将前面的卷积层设计为,后面的卷积层则负责。因此,后面的卷积层需要更加复杂、抽象的特征表达能力,才能有效地提取更好的特征。为了增强特征提取能力,通常可以使用更多的卷积核来学习特征。同时,还可以逐层增加卷积核的通道数,以增加模型的复杂度和表达能力。具体而言,每一层卷积层中的卷积核个数和通道数都可以根据实际任务需要进行相应的调整。需要注意的是,过深或过于复杂的网络结构可能会导致过拟合问题。

2023-04-19 22:08:10 1578

原创 torch.stack是干什么用的

torch.stack 是 PyTorch 框架中用于沿着新的维度对张量序列进行拼接的函数。它将一系列张量拼接为一个新的张量,其中输入张量必须具有相同的形状(除了沿着新维度堆叠的维度)。上面的例子中,a和b都是形状为(3,)的1维张量,而对它们进行 torch.stack 后,得到了形状为(2,3)的2维张量。在拼接时,我们指定了 dim=0,即在第0个维度上进行拼接。其中,sequence是需要堆叠的张量序列,dim是新的维度,在该维度上拼接张量;out是指定输出张量。

2023-04-19 20:23:14 526

转载 YOLOv8/YOLOv7/YOLOv5系列算法改进[NO.14]主干网络C3替换为轻量化网络Ghostnet

YOLOv5主干特征提取网络采用C3结构,带来较大的参数量,检测速度较慢,应用受限,在某些真实的应用场景如移动或者嵌入式设备,如此大而复杂的模型时难以被应用的。作为当前先进的深度学习目标检测算法YOLOv5,已经集合了大量的trick,但是还是有提高和改进的空间,针对具体应用场景下的检测难点,可以不同的改进方法。此后的系列文章,将重点对YOLOv5的如何改进进行详细的介绍,目的是为了给那些搞科研的同学需要创新点或者搞工程项目的朋友需要达到更好的效果提供自己的微薄帮助和参考。第三步:进行修改yaml文件。

2023-04-19 15:59:28 2413 3

原创 计算机研究领域如何快速跟上前沿知识?

网站,搜索你目前的领域,比如UOD(水下目标检测),这样就能给出最新post的论文,研读即可。

2023-04-19 05:23:01 45

转载 查看会议所属CCF级别(A/B/C类会议)

2.搜索框中输入会议名,例如:CSCWD。可以看到,CSCWD是C类会议。

2023-04-19 04:35:44 6424

原创 YOLOv7自定义数据集、训练与测试指令、断电续训

单卡单机多卡测试On video:On image:

2023-04-19 00:50:52 325

原创 pytorch框架:conv1d、conv2d的输入数据维度是什么样的

具体来说,Conv1d 模块会对第二维和第三维分别进行一维卷积操作,保留第一维(即批次大小)不变,输出一个新的三维张量,形状为 (batch_size, out_channels, new_sequence_length),其中 out_channels 表示卷积核的数量,new_sequence_length 表示卷积后的序列长度。sequence_length 表示当前输入数据的序列长度,对于文本分类任务通常为词向量的长度,对于时序信号处理任务通常为时间序列的长度,对于图像分类任务通常为图像的高或宽。

2023-04-18 00:27:03 6380

原创 使用Pandas合并数据表,按照列方向,维度不变,数据量增多

使用pandas读取数据,使用pd.concat([],axis=1)合并数据,ignore_index=True用于忽略掉之前索引,重新产生一个新的索引,header=None表示为没有列的数据添加默认列名。

2023-04-16 20:10:00 179

原创 矩阵的点乘与叉乘的区别

它的结果是一个新的向量,其方向垂直于原始向量所在的平面,并且长度等于这两个向量所围成的平行四边形的面积。矩阵叉乘:也称为向量积或外积,只能针对某些特定的对象进行,例如两个三维向量的叉乘。它的结果是一个新的向量,其方向垂直于原始向量所在的平面,并且长度等于这两个向量所围成的平行四边形的面积。矩阵与矩阵相乘:是指一个矩阵与另一个矩阵相乘,结果是一个新的矩阵。例如,如果一个矩阵是m行n列的,另一个矩阵是p行q列的,那么只有在n等于p时它们才能相乘。矩阵与向量相乘:是指一个矩阵与一个向量相乘,结果是一个向量。

2023-04-15 03:18:59 7965

原创 Pytorch实现使用余弦退火算法优化手写数据集分类

余弦退火算法是一种优化算法,通常用于训练神经网络等模型。它的主要思想是动态调整学习率,使得模型可以更快地收敛并获得更好的性能。余弦退火算法的原理比较简单,其核心在于使用余弦函数来动态地调整学习率。具体地,算法将学习率从初始值逐步降低到最小值,并在此后保持不变。通过这种方式,余弦退火算法可以在训练过程中缓慢降低学习率,从而避免在训练过程中出现梯度下降过快导致的震荡现象,进而提高模型的训练稳定性和泛化能力。

2023-04-14 23:52:25 1781

原创 使用Stacking集成学习(逻辑回归、随机森林)对鸢尾花数据集进行分类

然后,将该元特征矩阵作为输入传递给训练好的元分类器,以获得最终的预测结果。利用基础分类器生成元特征:将训练数据集分成两部分,一部分用于训练基础分类器,另一部分用于生成元特征。对于每个基础分类器,利用其中一部分训练数据集进行训练并在剩余部分数据上生成元特征,以此来获取各个基础分类器对样本的预测结果。需要注意的是,Stacking的性能取决于选择的基础分类器和元分类器的类型和数量,以及如何对数据集进行划分、调参和优化等。构建元特征矩阵:将所有基础分类器的生成的元特征整合到一起,构成一个元特征矩阵。

2023-04-14 23:12:32 1295

原创 Pytorch自定义中心损失函数与交叉熵函数进行[手写数据集识别],并进行对比

【代码】Pytorch自定义中心损失函数与交叉熵函数进行[手写数据集识别],并进行对比。

2023-04-13 19:34:04 571

转载 训练网络loss出现Nan解决办法

6.在某些涉及指数计算,可能最后算得值为INF(无穷)(比如不做其他处理的softmax中分子分母需要计算exp(x),值过大,最后可能为INF/INF,得到NaN,此时你要确认你使用的softmax中在计算exp(x)做了相关处理(比如减去最大值等等))调试中你可以使用一个简单的网络来读取输入层,有一个缺省的loss,并过一遍所有输入,如果其中有错误的输入,这个缺省的层也会产生NaN。2.如果当前的网络是类似于RNN的循环神经网络的话,出现NaN可能是因为梯度爆炸的原因,一个有效的方式是增加“

2023-04-13 18:48:52 1645

转载 Pytorch:交叉熵损失(CrossEntropyLoss)以及标签平滑(LabelSmoothing)的实现

一般情况下我们都是直接调用Pytorch自带的交叉熵损失函数计算loss,但涉及到魔改以及优化时,我们需要自己动手实现loss function,在这个过程中如果能对交叉熵损失的代码实现有一定的了解会帮助我们写出更优美的代码。其次是标签平滑这个trick通常简单有效,只需要改改损失函数既可带来性能上的提升,通常与交叉熵配合食用。因此,本文基于这两个出发点,介绍基于Pytorch框架下的交叉熵损失实现以及标签平滑的实现。

2023-04-13 17:45:36 1598

原创 使用Pytorch实现自定义的交叉熵损失函数,对手写数字数据集进行分类

直接替换交叉熵损失函数即可loss_fn = CustomCrossEntropyLoss() # 创建损失函数 learn_rate = 1e-2 # 学习率。

2023-04-13 14:08:49 1027

原创 计算机视觉面试题-网络结构相关问题总结-未完待续

卷积是在特征图上进行滑动的矩阵,它的参数是可学习的,然后计算矩阵跟被滑动到的区域内的像素点进行内积计算,再求和。这种操作可以使得卷积学习到局部特征,并且每个被滑动到的区域之间都共享了权重。共享权重操作使得卷积相比全连接网络节省了大量的参数。

2023-04-12 17:11:22 476

原创 蓝桥杯 试题 B: 分糖果

【代码】蓝桥杯 试题 B: 分糖果。

2023-04-12 16:01:28 86

转载 【深度学习】Multi-Head Attention 原理

对于同一个文本,一个Attention获得一个表示空间,如果多个Attention,则可以获得多个不同的表示空间。基于这种想法,就有了Multi-Head Attention。因为在每个Attention中,采用不同的Query / Key / Value权重矩阵,每个矩阵都是随机初始化生成的。将模型分为多个头,形成多个子空间,可以让模型去关注不同方面的信息。上图中Multi-Head Attention 就是将 Scaled Dot-Product Attention 过程做了8次,再把输出合并起来。

2023-04-12 04:19:23 337

转载 YOLOv5核心基础知识讲解

我这主要是老师的内容!!

2023-04-12 04:05:56 10316

转载 YOLOv5改进之十七:CNN+Transformer——融合Bottleneck Transformers

​前 言:作为当前先进的深度学习目标检测算法YOLOv5,已经集合了大量的trick,但是还是有提高和改进的空间,针对具体应用场景下的检测难点,可以不同的改进方法。此后的系列文章,将重点对YOLOv5的如何改进进行详细的介绍,目的是为了给那些搞科研的同学需要创新点或者搞工程项目的朋友需要达到更好的效果提供自己的微薄帮助和参考。

2023-04-11 04:29:05 3477 4

转载 迁移学习(Transfer),面试看这些就够了!(附代码)

迁移学习(Transfer Learning)是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都是为了解决单个任务而设计的,但是促进迁移学习的算法的开发是机器学习社区持续关注的话题。迁移学习对人类来说很常见,例如,我们可能会发现学习识别苹果可能有助于识别梨,或者学习弹奏电子琴可能有助于学习钢琴。

2023-04-11 00:47:40 235

转载 【深度学习与计算机视觉】12、迁移学习

迁移学习(transfer learning)通俗来说就是找到已有知识和新知识之间的相似性,由于直接对目标开始从头学习的成本太高,硬件要求和时间周期要求也很高,所以我们转而利用相关知识来辅助尽快的学习新知识。迁移学习的核心就是找到目标和已有知识之间的相似性,进而对新知识进行学习。在迁移学习中,我们已有的知识叫做源域(source domain),要学习的新知识叫目标域(target domain)。迁移学习研究如何把源域的知识迁移到目标域上。

2023-04-11 00:36:17 488

转载 Pytorch dataloader中的num_workers (选择最合适的num_workers值)

是告诉DataLoader实例要使用多少个子进程进行数据加载(和CPU有关,和GPU无关)如果num_worker设为0,意味着每一轮迭代时,dataloader不再有自主加载数据到RAM这一步骤(因为没有worker了),而是在RAM中找batch,找不到时再加载相应的batch。缺点当然是速度慢。当num_worker不为0时,每轮到dataloader加载数据时,dataloader一次性创建num_worker个worker,并用。

2023-04-11 00:25:10 3646 4

转载 【YOLO】pytorch版yolov4训练自己的数据集

注意:本文采用的是复现的训练自己的数据,即的二作。

2023-04-10 22:54:22 552

原创 Yolov5s按照json格式输出视频检测信息

按照json格式存储视频检测信息,如下所示。

2023-04-08 23:56:17 462 4

原创 Yolov8断续训练指令

resume。

2023-04-08 21:03:09 818

原创 Yolov8断续训练

resume。

2023-04-05 17:33:03 88

原创 Yolov8训练自己的数据集,不会出现command nod found

【代码】Yolov8训练自己的数据集。

2023-04-05 15:10:55 368

转载 路径中“./”、“../”、“/”代表的含义

4、根目录表示法,任何页面访问Image下的Image.jpg图片。1、文件在当前目录(以图像文件为例,当前项目文件为中心)(2)在上层目录下的一个Image文件夹下。3、文件在下一层目录(Image1文件夹)//文件在下一层目录(Image1文件夹)在读取文件时,路径的写法有如下方式。//文件在上一层目录下。//文件在上上层目录下。(3)在上上层目录下。

2023-04-05 02:15:46 3703 1

原创 yolov5 加入可形变卷积

找到parse_model函数,把DCNConv加入进去。修改yolov5s.yaml文件。修改common.py 文件。运行下面命令查看网络结构。修改yolo.p文件。

2023-04-04 23:37:47 458 2

Java实现邻接表.html

第一次制作的网页,关于基于Java实现图论算法的代码。内含一些html的基础操作语法,比如超链接等等。

2020-03-09

空空如也

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

TA关注的人

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