- 博客(53)
- 收藏
- 关注
原创 第Y8周:yolov8.yaml文件解读
共享计算:在YOLO中,backbone对于输入图像只计算一次,生成的特征图被多个检测头(head)共享,这些检测头负责最终的边界框预测、类别预测和置信度预测。这种设计减少了重复计算,提高了检测效率。降维和抽象:Backbone通过连续的卷积层逐步减少特征图的尺寸(即空间维度),同时增加特征图的深度(即通道数),从而实现对输入图像的降维和抽象。鲁棒性:Backbone的设计通常包含多种卷积层和池化层,这些层可以提高网络对图像变换(如缩放、旋转和平移)的鲁棒性,使得模型能够在不同的环境和条件下稳定地工作。
2024-11-28 21:35:28
1327
2
原创 第Y6周:模型改进
在yolov5s.yaml中,在backbone把索引为4的层从C3 * 2修改为C2 * 2 ,在yolov5s.yaml中指出depth_multiple为0.33,0.33 * 6 约等于 2,所以第4层为:[-1, 6, C2, [256]]刚开始修改的时候我以为这样就结束了,但是后来想到牵一发而动全身,肯定还有其他地方被影响了,于是上网搜查,再返回以前的进行理解,才意识到还要改一下head文件的配置。这里要根据Y5的经验进行修改,把C3的concat后的Conv去掉就好了。
2024-11-15 09:33:04
389
原创 第Y5周:yolo.py文件解读
在YOLOv5中,YOLO.py文件扮演着核心角色,主要负责搭建和定义YOLOv5的网络模型。以下是关于YOLO.py文件概述YOLO.py位于YOLOv5项目的models目录下。该文件是YOLOv5网络模型构建的关键文件之一。如果想要改进YOLOv5模型,通常需要修改这个文件。主要功能模型解析和构建YOLO.py中的parsemodel函数负责解析模型文件(通常是字典形式),并据此构建网络结构。类定义:文件中定义了Detect类和Model类,这些类是实现YOLOv5模型的核心部分。
2024-10-30 09:55:19
958
原创 第Y4周:common.py文件解读
将yolov5s网络模型中C3模块中的结构按照如下方式修改,并跑通YOLOv5。在YOLOv5中,common.py文件是一个关键组件,它包含了实现YOLO算法中各个模块的代码。以下是对common.py文件位置和作用common.py位于./models目录下。该文件定义了YOLOv5网络结构中的多个基础模块,如果需要修改某一模块(例如C3模块),就需要修改这个文件中对应模块的定义。导入的包和基本配置:文件开始部分导入了多个Python模块,如mathcopypathlibnumpypandas。
2024-10-22 21:58:18
857
原创 第Y3周:yolov5s.yaml文件解读
YOLOv5中的C3模块是一种神经网络模块,它是Cross Stage Partial networks(CSPNet)的一个变体,旨在提高网络的效率和性能。C3模块的核心思想是通过将输入特征图分成两部分,然后分别进行处理,最后再将这两部分的特征图合并,以此来实现更丰富的特征融合和更有效的信息传递。
2024-10-18 19:29:26
1219
1
原创 第Y2周:训练自己的数据集
在上一次体验yolov5s的为基础上,这次将训练自己的数据集。在YOLO目标检测算法中常用的三种标签格式:voc(xml)、coco(json)和yolo(txt)。
2024-10-07 22:01:54
446
原创 第Y1周:调用官方权重进行检测
当然,你也可以手动添加对应的环境变量;从本周开始YOLO的学习啦。教案选择的是YOLOv5s。然后再自己找个视频(如果你是训练营的就用提供的视频)放到路径下。然后就会逐帧加测,等很久很久过后就能出现一个满是检测框的视频啦。如果中途出现这种黄色的warning,其实不用管就行了。在上面文件路径行输入cmd就会直接跳转到cmd啦。等安装好后输入这段代码,等出现下面的结果就好啦。打开网页之后下载zip包解压到自己想要的路径。再输入图片展示的命令行将环境依赖安装好。GITHUB的开源地址如下。
2024-09-25 08:52:45
229
原创 第R3/4周:天气预测
这周的任务添加了探索式数据分析(EDA),什么是探索式数据分析呢?探索性数据分析(Exploratory Data Analysis,简称EDA)是一种数据处理方法,用于在数据建模之前对数据进行初步的观察和分析。通过可视化、总结统计量和数据变换等技术,探索性数据分析帮助研究者理解数据的特征、分布和潜在的关系,为后续的数据分析和建模提供指导。
2024-09-18 18:44:11
1295
原创 第R2周:LSTM-火灾温度预测
长短时记忆网络(Long Short-Term Memory, LSTM)的本质是一种特殊的循环神经网络(Recurrent Neural Network, RNN),它被设计来解决标准RNN在处理长序列数据时遇到的梯度消失或梯度爆炸问题,这些问题限制了RNN在处理长距离依赖关系时的能力。LSTM的核心创新在于它引入了所谓的“门控机制”(gates),这些门控机制允许网络学习何时让信息进入或离开网络,以及何时保留或更新长期状态。遗忘门(Forget Gate)
2024-09-05 20:13:23
1164
原创 第R1周: RNN-心脏病预测
RNN(Recurrent Neural Network)是一种特殊的神经网络,它能够处理序列数据,如时间序列、文本序列等。RNN与传统神经网络的主要区别在于其结构特点和计算机制。结构特点RNN由一系列相互连接的节点组成,每个节点代表一个状态。这些节点通过反馈回路连接在一起,使得网络能够记住之前的状态信息。计算机制RNN在计算当前状态时,不仅考虑当前输入,还考虑上一个状态的信息。这种机制使得RNN能够捕捉到数据的长期依赖性,适用于处理时间序列数据。应用场景。
2024-08-29 13:35:54
819
原创 第N8周:图解NLP中的注意力机制
Seq2seq(Sequence to Sequence)模型是一种经典的编码器-解码器(Encoder-Decoder)架构,广泛用于处理序列到序列的映射问题,如机器翻译、对话系统等。在这种情况下,解码器在每个时间步的输入是目标序列中的下一个单词。注意力机制是一种模拟人类大脑注意力分配方式的计算模型,它能够在处理大量信息时,聚焦于重要的部分,而忽略不重要的信息。将其形状调整为三维张量,其中第一维是批次大小(这里为1,因为是单个输入),第二维是序列长度(也是1,因为是单个时间步),第三维是嵌入向量的维度。
2024-07-26 17:32:01
1070
原创 第N7周:seq2seq翻译实战-pytorch复现-小白版
在序列生成的任务中,如机器翻译或文本生成,解码器(decoder)的输入通常是由解码器自己生成的预测结果,即前一个时间步的输出。GRU是一种RNN(循环神经网络)的变体,它将传统的RNN的三个门(输入门、遗忘门和输出门)合并为两个门(更新门和重置门)。GRU是一种RNN(循环神经网络)的变体,它将传统的RNN的三个门(输入门、遗忘门和输出门)合并为两个门(更新门和重置门)。GRU是一种RNN(循环神经网络)的变体,它将传统的RNN的三个门(输入门、遗忘门和输出门)合并为两个门(更新门和重置门)。
2024-07-11 22:24:33
1238
1
原创 第N6周:使用Word2vec实现文本分类
这里其他的东西都耳熟能详了,其中梯度裁剪可以领出来讲一讲。在深度学习中,梯度裁剪是一种常见的技术,用于防止梯度爆炸,这是神经网络训练过程中可能出现的问题之一。当梯度变得非常大时,它们可能会导致权重更新变得不稳定,甚至可能导致模型训练失败。是 PyTorch 中的一个函数,用于限制梯度的范数(大小)在训练过程中。: 返回模型中所有可学习的参数(权重和偏置)的列表。这些参数将在训练过程中通过反向传播计算梯度。0.1: 这是梯度裁剪的上限,也称为裁剪阈值。
2024-07-01 16:51:24
1163
原创 第N5周:调用Gensim库训练Word2Vec模型
Word2Vec是一种计算模型,它将词汇表中的每个词映射到一个固定大小的向量。这种技术是自然语言处理(NLP)领域的一个重要突破,由Google在2013年左右推出。Word2Vec模型能够捕捉词汇表中词之间的语义和语法关系,这些关系被编码在词向量(word embeddings)中。连续词袋(CBOW)和Skip-Gram。CBOW:适用于大规模数据集和频繁词的向量表示,训练速度较快。Skip-Gram:适用于处理稀有词和复杂的语言模式,训练速度较慢。
2024-06-26 19:02:58
1679
原创 第N4周:中文文本分类
model.train() # 切换为训练模式# grad属性归零loss = criterion(predicted_label, label) # 计算网络输出和真实值之间的差距,label为真实值# 反向传播torch.nn.utils.clip_grad_norm(model.parameters(), 0.1) # 梯度裁剪optimizer.step() # 每一步自动更新# 记录acc与lossmodel.eval() # 切换为测试模式。
2024-06-19 19:19:18
1312
1
原创 第N3周:pytorch文本分类入门
文本偏移量(offsets)在处理文本数据时是用来记录每个样本的文本在批量数据中的起始位置。这种做法通常用于处理序列数据,如文本数据,当文本长度不一致时。在文本分类任务中,每个样本可能包含不同数量的文本,这意味着在将文本数据传递给模型之前,需要对它们进行适当的重组。文本偏移量的作用是在批量数据中正确地对齐每个样本的文本。具体来说,偏移量是一个列表,其中每个元素代表批量数据中对应样本的文本开始位置。样本1: “here is”样本2: “an example”
2024-06-13 10:09:22
556
原创 第N2周:Embeddingbag和Embedding详解
在机器学习和深度学习中,嵌入层(embedding layer)是一种特殊的神经网络层,它的作用是将离散的输入数据(如单词、物品、用户ID等)映射到连续的向量表示。这种映射是通过一个可训练的权重矩阵实现的,该矩阵的行数等于输入数据的类别数(例如,词汇表中的单词数),列数等于嵌入向量的维度。在二维空间中,任何向量都可以通过平面上的一个点来表示,向量的大小(长度或范数)和方向由该点的位置决定。在这样的高维空间中,直接进行数据的可视化变得非常困难,甚至不可能,因为我们的直觉和视觉感知是在三维空间中形成的。
2024-05-27 21:00:49
1198
原创 第N1周:one-hot独热编码
独热编码(One-Hot Encoding)是一种将分类数据转换为二进制向量的方法,其中每个类别对应一个唯一的二进制向量。在独热编码中,每个类别都由一个长度为n的向量表示,其中n是所有可能类别的数量。向量中的每个位置对应一个可能的类别,该位置上的值是1或0,表示该实例是否属于该类别。这段代码的目的是将给定的文本数据集转换为独热编码(One-Hot Encoding)。(注意斜杠的方向,如果安装了代码自动补全的会自动把斜杠补对,这个还挺好的)库是一个流行的中文分词工具,它使用了一种基于前缀词典的分词算法。
2024-05-22 19:42:43
1246
原创 第P1周:手写数字识别
更具体地说,损失函数loss是由模型的所有权重w经过一系列运算得到的,若某个w的requires_grads为True,则w的所有上层参数(后面层的权重w)的.grad_fn属性中就保存了对应的运算,然后在使用loss.backward()后,会一层层的反向传播计算每个w的梯度值,并保存到该w的.grad属性中。是 NumPy 库中的一个函数,它的作用是从数组的形状中移除单维的条目,即维度大小为 1 的轴。这个函数的目的是为了减少数组的维度,使得数组的形状更加紧凑,便于进行某些操作或计算。
2024-05-20 10:12:56
824
原创 第G9周:ACGAN理论与实战
这段代码是生成对抗网络(GAN)的训练过程的一部分,它包括生成器、判别器、数据加载器、优化器以及一个保存生成图像的函数。代码首先定义了生成器和判别器,然后设置GPU支持,初始化权重,配置数据加载器,创建优化器,并定义了一个保存生成图像的函数。这段代码是生成对抗网络(GAN)的训练过程,其中包含了多个循环,用于迭代地训练生成器和判别器。判别器网络是生成对抗网络(GAN)的另一部分,它的目标是区分输入的图像是否是真实图像。生成器网络是生成对抗网络(GAN)的一部分,它学习如何从随机噪声生成真实的图像。
2024-05-08 21:09:25
731
3
原创 第G8周:ACGAN任务
从知乎博主“张宏伦”老师的文章里我们可以清晰的看到ACGAN和其他GAN的区别,下面引用文章里的一张图片。原文链接放到下面17 CGAN和ACGAN(下):来自知乎作者张宏伦条件生成对抗网络ACGAN最直观的功能便是既可以生成图像又可以进行分类。它是一种深度学习模型,由Ian Goodfellow等人在2014年提出生成对抗网络(GAN)的基础上进一步发展而来。ACGAN在原始GAN的基础上加入了条件控制,使得生成过程可以受到额外信息的指导,从而能够生成具有特定属性或者风格的数据。
2024-04-30 18:49:44
1185
原创 NLP发展及其详解
RNN(循环神经网络)的结构特点在于其循环单元的设计,这种设计允许网络在处理序列数据时保持对之前信息的记忆。然而,传统的RNN存在一些问题,比如在训练过程中可能出现的梯度消失或梯度爆炸问题,这使得它们难以学习长距离依赖。为了解决这个问题,研究者们提出了更复杂的循环单元结构,如LSTM(长短时记忆网络)和GRU(门控循环单元),这些结构通过引入门控机制来更好地捕捉长距离依赖。总的来说,RNN的结构使其成为处理序列数据的强大工具,而其变体如LSTM和GRU则进一步增强了其在复杂序列建模任务中的能力。
2024-04-28 21:06:35
1184
原创 模型训练常见超参数的讲解
在模型训练中,潜在空间(latent space)是指嵌入在模型内部的一种低维、通常连续的表示空间,尤其是在无监督学习或生成模型(如自编码器、变分自编码器VAEs、生成对抗网络GANs)中。潜在空间的维度(latent dimensionality)是指这个空间的维数,即潜在变量的数量。
2024-04-28 20:12:33
2302
原创 第G7周:Semi-Supervised GAN 理论与实战
SGAN(Spectral Generative Adversarial Networks)是一种生成对抗网络(GAN)的变体,它在训练过程中引入了谱正则化(spectral normalization)技术。GAN是一种深度学习模型,由生成器(Generator)和判别器(Discriminator)组成,它们通过相互对抗的方式训练,生成器试图生成逼真的样本,而判别器试图区分真实样本和生成样本。在传统的GAN中,生成器和判别器的训练过程可能会遇到梯度消失或梯度爆炸的问题,导致训练不稳定。
2024-04-26 12:13:52
645
2
原创 Pytorch重点概念笔记:都是本人学习中真实遇到的(一)
是PyTorch中的一个函数,用于减少张量的维数,具体来说,它会移除所有维数为1的维度。这个操作通常用于处理那些在特定操作(如卷积或池化)后可能产生不必要的单维度张量。在某些情况下,张量操作会生成形状中包含单维度的张量。例如,一个形状为的张量可能是在某个卷积操作后产生的,其中B是批量大小,C是通道数,而最后两个维度是1。在这些情况下,单维度并没有携带任何有用的空间信息,只是增加了张量的维数。的作用就是移除这些不必要的单维度,从而简化张量的形状。inputdim下面是一些在上面的例子中,第一个。
2024-04-22 15:48:47
1139
原创 Darknet框架优化介绍
Darknet是一个完全使用C语言编写的人工智能框架,可以使用CUDA的开源框架。主要应用于图像识别领域。具体的安装使用教程在阿里云社区有详细的介绍。
2024-04-19 21:25:54
634
2
原创 第G6周:CycleGAN实践
CycleGAN(循环生成对抗网络)是一种生成对抗网络(GAN),它能够在没有成对训练样本的情况下,将一个域(比如照片中的马)转换成另一个域(比如照片中的斑马)。生成器的作用是在两个域之间进行转换,而判别器则用于判断输入的图像是真实的还是由生成器生成的。生成器的目标是学习如何将输入图像转换成目标域中的图像,同时欺骗判别器,使其认为生成的图像是真实的。这段代码的主要目的是通过训练生成器来学习从源域(A)到目标域(B)的映射,并从目标域(B)到源域(A)的映射。当调用 parse_args()
2024-04-18 19:50:17
2075
1
原创 第G5周:Pix2Pix理论与实战
综上所述,Pix2Pix以其强大的图像转换能力和较高的通用性在图像处理领域得到了广泛的应用,但同时也面临着计算资源要求高和模型调优难度大等挑战。方法将两个输入图像(例如真实图像和生成图像)按通道拼接起来,然后将拼接后的图像传递给判别器模型,最后返回一个标量作为判别结果。: 创建一个数据加载器对象,用于从指定路径加载图像数据集,并应用上述定义的图像变换。它能够将输入的图像转换为对应的输出图像,通常用于解决图像到图像的转换问题。: 将真实图像A、生成的虚假图像B和真实图像B在通道维度上进行拼接。
2024-04-05 14:06:48
1093
原创 第G4周:CGAN|生成手势图像|可控制生成
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制一、前置知识CGAN(条件生成对抗网络)的原理是在原始GAN的基础上,为生成器和判别器提供 额外的条件信息。CGAN通过将条件信息(如类别标签或其他辅助信息)加入生成器和判别器的输入中,使得生成器能够根据这些条件信息生成特定类型的数据,而判别器则负责区分真实数据和生成数据是否符合这些条件。这种方式让生成器在生成数据时有了明确的方向,从而提高了生成数据的质量与相关性。CGAN的特点包括有监督学习
2024-03-11 22:11:03
1319
原创 第G3周:CGAN入门|生成手势图像
代码知识点函数用于计算二分类问题中的二元交叉熵损失。是PyTorch中提供的一个损失函数,主要用于二元分类问题。它计算的是真实标签与模型预测概率之间的二元交叉熵损失(Binary CrossEntropyLoss)。这个损失函数衡量的是模型输出概率与实际标签的一致性,其目的是在训练过程中最小化这个损失值,从而提高模型的预测准确性。在二元分类问题中,模型的输出通常是一个介于0和1之间的概率值,表示某个样本属于正类的概率。
2024-03-10 20:20:01
1040
原创 第G2周:人脸图像生成(DCGAN)
DCGAN,即深度卷积生成对抗网络(Deep Convolutional Generative Adversarial Networks),是一种利用深度神经网络来生成与真实数据分布高度相似的新数据的算法。基本结构:DCGAN由两个深度卷积神经网络组成,一个生成器(Generator,记为G)和一个判别器(Discriminator,记为D)。生成器的作用是产生逼真的假数据(如图像),而判别器的任务是区分输入的数据是真实的还是由生成器产生的假数据。训练过程。
2024-03-04 21:45:23
1122
5
原创 第G1周:生成对抗网络(GAN)入门
代码知识点这部分代码导入了所需的库和模块,包括argparse用于解析命令行参数,os用于处理文件路径,numpy用于数值计算,torchvision.transforms用于图像变换,torchvision.utils中的save_image用于保存生成的图像,torch.utils.data中的DataLoader用于加载数据,torchvision中的datasets用于加载数据集,torch.autograd中的Variable用于自动求导,
2024-02-28 11:29:01
871
原创 第T11周:优化器对比实验
*这个图我们可以直观的看出来使用Adam和SGD两种优化器对训练数据的影响,也直观的看出为什么一般用Adam就是比较好的选择,SGD随机性太强,震荡过于严重,得出的结果数据不好,容易陷入局部最优解;而Adam作为动量法的精华,使得参数比较平稳。但是根本的原则还是根据实际情况选择,SGD也有比较好的应用场景。图片总数为: 1800。
2024-02-23 11:14:37
954
原创 第T9周:猫狗识别2
不需要在循环开始时设置学习率,可以在训练循环开始之前设置它。验证loss为:0.0730。验证loss为:0.0382。验证loss为:0.0675。验证loss为:0.0327。验证loss为:0.0127。验证loss为:0.0211。验证loss为:0.0187。验证loss为:0.0182。验证loss为:0.0186。验证loss为:0.0186。验证准确率为:0.9673。验证准确率为:0.9830。验证准确率为:0.9801。验证准确率为:0.9901。验证准确率为:0.9972。
2024-01-04 11:28:21
986
1
原创 第T8周:猫狗识别
函数是Keras库中的一个函数,用于在单个批次的数据上训练模型。这个函数的主要作用是在给定的输入数据和对应的目标数据上,使用模型的优化器进行一次前向传播和反向传播,从而更新模型的权重。如果设置为True,那么返回的结果将是一个字典,包含每个评估指标的值;如果设置为False,那么返回的结果将是一个列表,包含每个评估指标的值。还可以是一个字典,包含输入数据和目标数据的字典。如果设置为True,那么在每次调用train_on_batch()时,都会重置模型的评估指标。可选参数,用于指定每个样本的权重。
2023-12-26 21:33:27
990
1
原创 第T7周:咖啡豆识别
本周由于上周使用VGG-16完成的任务,已经将本周的任务研究的差不多,所以本周只有学习心得。主要是对学习率的调整,这次数据的数量是1200,比上次少了600.我想着学习率可能会低一些,不过试出来直接跌了一个数量级。最重要的就是掌握了调参的经验。设置学习率尽量少设1开头的,其他数字随便用,一般不会陷入局部最优解,也就是准确率卡在一个地方不动。当准确率出现较大幅度的震荡的时候就是学习率设高了。在峡谷两端跳过去跳过来的。最好的一个设计就是学习率梯度衰减。
2023-12-19 22:26:25
967
1
原创 第T5周:运动鞋品牌识别
这次加入了早停和指数变化学习率,确实是很有用的方法,但是最开始自己设置参数时,总感觉教案设置的学习率太大(虽然后面公布答案就是改的学习率)。然而,随着训练的深入,模型参数的变化速度可能会变得非常快,导致学习率过高,从而影响模型的训练效果。因此,为了解决这个问题,可以使用学习率衰减策略来逐渐降低学习率。最小变化量,这里设置为0.001,表示当验证集上的准确性变化小于这个值时,认为已经达到了停止训练的条件。容忍度,这里设置为20,表示如果在连续20个训练周期内验证集上的准确性没有提高,就触发提前终止训练。
2023-12-04 19:51:53
999
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人