
深度学习与机器学习
文章平均质量分 82
探索深度学习的核心概念,从基础激活函数到高级网络结构,本专栏将带您深入了解机器学习的世界。
学技术的大胜嗷
路虽远行则将至
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
YOLOv8 模块添加与修改讲解:从源码修改到配置文件配置
YOLOv8 的模块(如。原创 2025-06-12 18:55:39 · 488 阅读 · 0 评论 -
YOLOv8损失函数代码详解(示例展示数据变换过程)
如果传入形如 (B, N, 1, 4) × (B, 1, M, 4) 的高维张量,上面所有逐元素运算依靠 PyTorch 广播机制 依旧能得到 (B, N, M) 的 IoU 矩阵。YOLOv8的损失函数计算代码位于'ultralytics/utils/loss.py'文件中(如下所示),我在代码中的注释提供了详细解析。本文将展示YOLOv8中损失函数计算的完整代码解析,注释中提供了详尽的解释,并结合示例演示了数据维度的转换,以帮助更好地理解。__init__和preprocess的代码如下。原创 2025-05-24 22:22:30 · 584 阅读 · 0 评论 -
YOLOv8检测头代码详解(示例展示数据变换过程)
由于在不同阶段,检测头的输出有所不同,因此在讲解损失函数的计算之前,我们需要先理解检测头的输出内容以及相关参数的定义。例如输入图像640x640生成80x80特征图(stride=8时,特征图每个单元格对应输入图像8x8区域, 锚点坐标为(i+0.5, j+0.5),最终输出形状为(N,2)的锚点坐标和(N,1)的步长张量, N为所有特征图层网格点总数(如80x80+40x40+20x20=8400)。,这也是我们所说的大目标检测头和小目标检测头的区别(即20x20和80x80的区别)。原创 2025-05-23 18:48:29 · 911 阅读 · 0 评论 -
YOLO中的DFL损失函数的理论讲解与代码分析
如图所示:由于遮挡、阴影、模糊等原因,许多目标的边界并不清晰,因此真实标签(白色框)有时并不可靠,仅用狄拉克δ分布难以表示这些情况(狄拉克δ分布是一种理想的、只在单一点概率为1,其他地方概率为0的数学分布,表示完全确定的情况)。相反,提出的边界框泛化分布学习方法能够通过分布形状体现边界信息,其中较为平坦的分布表示边界不清晰或模糊的情况(见红色圆圈标记),而尖锐的分布表示边界明确的情况。,由中间的anchor负责预测,那么预测框边界到中心点的距离最大为10,所以16足够了。的特征图,16表示离散区间数(原创 2025-05-02 15:58:49 · 1743 阅读 · 0 评论 -
YOLOV8加载预处理数据并前向传播代码模块逐行调试
模型训练类的初始化结束也没有找到相关步骤,那么就可能不在初始化过程中进行数据预处理,回到一开始点进去的model.train(data="ultralytics/cfg/datasets/coco.yaml", epochs=2),发现在self.trainer初始化结束后调用了self.trainer.train()。框起来的方法是处理数据集的,但是都得主动调用,然而目前只实现了模型训练的构造,并没有主动调用什么方法。在_do_train中调用了_setup_train,点击进去。原创 2025-05-01 11:05:13 · 587 阅读 · 0 评论 -
YOLOV8模型配置文件加载解析代码逐行详解
其卓越性能的背后,是精心设计的模型架构和高效的配置加载机制在发挥作用。为了更加了解yolo模型的配置过程,我将逐步剖析从YOLO类的构造到模型配置的解析,从任务类型的自动判断到不同模型缩放版本的灵活定义。这里的缩放通常指的是模型的深度(depth)、宽度(width)和最大通道数(max_channels),这些参数影响模型的复杂度和性能。self.task根据配置文件中的head部分的参数得到为detect,下面学习self.model的构造,进入self._smart_load函数。原创 2025-04-26 22:54:13 · 664 阅读 · 0 评论 -
免费 课堂行为/人体姿态 数据集汇总,带标签
有些数量没统计是因为百度网盘下载太慢了,就没写上去。Multi_all 计算机视觉项目。自己在学习过程中搜集的免费可使用的。免费,包含举手、阅读、写作三类。S.B.C 计算机视觉项目。数据集,亲测都可以使用。智慧课堂学生行为数据集。标签和边框存在一些错误。类监控计算机视觉项目。原创 2025-01-19 11:15:26 · 592 阅读 · 0 评论 -
小目标检测难点分析和解决策略
迁移学习适用于数据稀缺、标注成本高的任务,可广泛应用于小目标检测及其他机器学习任务(如情感分类、缺陷检测等)。原创 2025-01-11 22:18:08 · 3436 阅读 · 0 评论 -
头部姿态估计与作弊检测代码
本代码采用Python开发,可调用摄像头或读取本地视频,精准检测人脸关键点,计算头部俯仰角、偏航角和滚转角,依据头部转动角度变化判断转头作弊,适用于在线考试监考、远程面试等场景。代码经过精心优化,附有详细中文注释,初学者也能迅速掌握功能与原理,轻松二次开发或项目拓展。代码配套解释文档,包括依赖安装和代码分析。已在多台电脑上成功运行,稳定性有保障!原创 2025-01-06 17:09:18 · 453 阅读 · 0 评论 -
基于transformer的目标检测:DETR
在深度学习和计算机视觉领域,目标检测一直是一个核心问题。传统方法依赖于复杂的流程和手工设计的组件,如非极大值抑制(nms)和锚点(anchor)生成,这些都需要对任务有深入的先验知识。然而,DETR的出现,为我们提供了一种全新的视角,将目标检测视为一个直接的集合预测问题,实现了端到端的检测。DETR,即DEtection TRansformer,是一种创新的框架,它通过简化检测流程,消除了对许多手工设计组件的需求。原创 2025-01-02 21:51:26 · 1585 阅读 · 1 评论 -
pycharm连接远程linux服务器上的docker进行深度学习训练
实进行深度学习时,由于GPU都在服务器上,编辑代码很麻烦。并且服务器上配置了docker的环境,所以用pycharm连接远程服务器的docker进行深度学习,这样在本地调用远程服务器的GPU和环境,更方便一点,将这个过程记录下来,希望对大家有所帮助。原创 2024-09-18 17:59:30 · 1918 阅读 · 0 评论 -
将.xml格式转换为YOLO所需的.txt文件格式
这段Python代码的主要功能是从XML格式的标注文件中提取边界框数据,并将其转换为YOLOv5模型所需的.txt文件格式。对代码加了详细解释。原创 2024-09-02 16:16:11 · 2128 阅读 · 0 评论 -
P(查准率) R(查全率) AP mAP最通俗准确的讲解
学习YOLO的过程中遇到了mAP指标,在网上看了很多关于mAP的讲解,不是很理解其计算过程,于是总结了各个帖子及自己的理解,给出mAP计算的规律,这样就能作为笔记很好的记忆。原创 2024-08-22 21:16:58 · 2062 阅读 · 0 评论 -
手把手在K210上部署自己在线训练的YOLO模型
讲解了在线训练模型、模型部署以及各部分的代码原创 2024-03-30 22:39:29 · 7516 阅读 · 34 评论 -
yolov1基础精讲
目标检测是理解图像内容的基础,它涉及识别图像中的一个或多个对象,并确定它们的位置。YOLOv1将目标检测视为一个单一的回归问题。它将整个图像分割成一个个,每个网格负责预测中心点落在该网格内的目标对象。YOLOv1的架构基于卷积神经网络(CNN),它通过一个单一的网络流程来预测多个边界框和类别概率。网络的输入是一张图片,输出是多个边界框的坐标、置信度以及类别概率。(yolov1的损失函数很重要)原创 2024-07-09 09:25:40 · 956 阅读 · 0 评论 -
批量归一化(BN)和层归一化(LN)的区别
以批量归一化举例但是批量归一化同时也降低了模型的拟合能力,归一化之后的输入分布被强制拉到均值为0和标准差为1的正态分布上来,简单来说特征之间的距离不会跑的很远,大部分特征都在正态分布的那个峰值附近。以Sigmoid激活函数为例,批量归一化之后数据整体处于函数的非饱和区域,只包含线性变换(多层的线性函数跟一层线性网络是等价的,网络的表达能力下降),破坏了之前学习到的特征分布。因此,为了使得归一化不对网络的表达能力造成负面印象,可以通过一个附加的缩放和平移变换改变取值区间。原创 2024-06-03 20:42:51 · 3036 阅读 · 0 评论 -
常见激活函数(Sigmoid、Tanh、Relu、Leaky Relu、Softmax)
不同的激活函数有不同的输出范围,比如Sigmoid函数的输出在(0, 1)之间,Tanh函数的输出在(-1, 1)之间,ReLU函数的输出在[0, ∞)之间。在神经网络的基本结构中,每个神经元接收输入信号,对其进行加权求和后加上偏置项,然后将这个结果通过激活函数进行转换,得到神经元的输出。由于大多数实际问题都是非线性的,非线性激活函数使得神经网络能够拟合复杂的函数映射关系,从而解决非线性问题。:某些激活函数(如ReLU)具有计算效率高的优点,因为它们的计算只涉及到基本的算术操作,而不需要昂贵的指数运算。原创 2024-06-20 17:35:37 · 34120 阅读 · 0 评论 -
Pytorch中reshape,view,transpose以及permute的详细原理及应用
在深度学习中,我们经常会遇到需要对张量进行形状变换的情况。PyTorch 提供了多种方法来改变张量的形状,包括 reshape, view, transpose和permute 。本文总结了其它博客的精华,详细介绍这些方法的原理和应用场景。原创 2024-07-28 17:06:02 · 905 阅读 · 0 评论 -
YOLOv2小白精讲
所以不用调整网络结构就可以输入不同分辨率的图像而得到相同的输出维度。原创 2024-07-21 23:56:47 · 1728 阅读 · 0 评论 -
GPU驱动、CUDA 、cuDNN 和CUDA Toolkit之间的关系(深度学习小白必懂)
GPU驱动、CUDA、cuDNN和CUDA Toolkit之间有着紧密的关系,它们共同构成了一个完整的GPU编程和深度学习开发环境。在最初配置anaconda环境时一直搞不明白它们之间的关系。所以根据自己的理解,通俗详细解释它们各自的角色和相互间的关系,并且列举了一些在anaconda虚拟环境中的例子。不对的地方希望大家指正。原创 2024-07-23 10:08:05 · 4329 阅读 · 1 评论 -
torch.nn.Linear的维度变换过程详解(有图有公式有代码)
当初在学习nn.Linear时了解到的博客都是关于一维变换的,比如输入3通道,输出6通道;又比如得到(3,4,4)的特征图,需要进行拉平为(48,)的向量,然后通过nn.Linear(48,10)得到10个输出(分类任务很常见)。nn.Linear除了可以进行分类,主要的作用就是改变维度便于下一个卷积层或线形层的输入。但是在实际代码中,nn.Linear的输入往往都是多维数据,一样可以正常输出。所以经过查阅手册和各个帖子,给出了自己的理解,作为笔记。原创 2024-08-05 15:23:39 · 4372 阅读 · 5 评论 -
图像在神经网络中的预处理与后处理的原理和作用(最详细版本)
预处理,后处理,图像深度学习,张量,互为逆过程原创 2024-04-25 22:42:17 · 5446 阅读 · 2 评论 -
transformer中对于QKV的个人理解
上面这个transformer中的注意力公式,相信大家不会陌生。公式并不复杂,但是why?为什么是这个公式,为什么大家都说之前了解transformer的时候,对于QKV的设定感到很奇怪,后来慢慢接受了这个设定,今天记录一下自己的理解。总结一下核心是新词向量矩阵包含了位置编码和其他词的上下文信息的一组信息的词向量。原创 2024-06-09 17:34:21 · 5653 阅读 · 5 评论 -
K210颜色识别实践
K210是一款嵌入式人工智能芯片,具有强大的图像处理能力。在这个示例中,我们将利用K210的图像处理功能进行颜色识别,以检测摄像头捕获的图像中的红色、绿色和蓝色区域,并在LCD屏幕上标记出这些区域。原创 2024-03-29 11:35:09 · 3142 阅读 · 3 评论 -
ViT(Vision Transformer)网络结构详解
本文在transformer的基础上对ViT进行讲解,transformer相关部分可以看我另一篇博客(原创 2024-07-22 16:34:27 · 8340 阅读 · 1 评论