自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 第N5周:调用Gensim库训练Word2Vec模型

Word2Vec是一种计算模型,它将词汇表中的每个词映射到一个固定大小的向量。这种技术是自然语言处理(NLP)领域的一个重要突破,由Google在2013年左右推出。Word2Vec模型能够捕捉词汇表中词之间的语义和语法关系,这些关系被编码在词向量(word embeddings)中。连续词袋(CBOW)和Skip-Gram。CBOW:适用于大规模数据集和频繁词的向量表示,训练速度较快。Skip-Gram:适用于处理稀有词和复杂的语言模式,训练速度较慢。

2024-06-26 19:02:58 971

原创 第N6周:使用Word2vec实现文本分类

这里其他的东西都耳熟能详了,其中梯度裁剪可以领出来讲一讲。在深度学习中,梯度裁剪是一种常见的技术,用于防止梯度爆炸,这是神经网络训练过程中可能出现的问题之一。当梯度变得非常大时,它们可能会导致权重更新变得不稳定,甚至可能导致模型训练失败。是 PyTorch 中的一个函数,用于限制梯度的范数(大小)在训练过程中。: 返回模型中所有可学习的参数(权重和偏置)的列表。这些参数将在训练过程中通过反向传播计算梯度。0.1: 这是梯度裁剪的上限,也称为裁剪阈值。

2024-06-20 22:04:18 913 1

原创 第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 981

原创 第N3周:pytorch文本分类入门

文本偏移量(offsets)在处理文本数据时是用来记录每个样本的文本在批量数据中的起始位置。这种做法通常用于处理序列数据,如文本数据,当文本长度不一致时。在文本分类任务中,每个样本可能包含不同数量的文本,这意味着在将文本数据传递给模型之前,需要对它们进行适当的重组。文本偏移量的作用是在批量数据中正确地对齐每个样本的文本。具体来说,偏移量是一个列表,其中每个元素代表批量数据中对应样本的文本开始位置。样本1: “here is”样本2: “an example”

2024-06-13 10:09:22 340

原创 第N2周:Embeddingbag和Embedding详解

在机器学习和深度学习中,嵌入层(embedding layer)是一种特殊的神经网络层,它的作用是将离散的输入数据(如单词、物品、用户ID等)映射到连续的向量表示。这种映射是通过一个可训练的权重矩阵实现的,该矩阵的行数等于输入数据的类别数(例如,词汇表中的单词数),列数等于嵌入向量的维度。在二维空间中,任何向量都可以通过平面上的一个点来表示,向量的大小(长度或范数)和方向由该点的位置决定。在这样的高维空间中,直接进行数据的可视化变得非常困难,甚至不可能,因为我们的直觉和视觉感知是在三维空间中形成的。

2024-05-27 21:00:49 909

原创 第N1周:one-hot独热编码

独热编码(One-Hot Encoding)是一种将分类数据转换为二进制向量的方法,其中每个类别对应一个唯一的二进制向量。在独热编码中,每个类别都由一个长度为n的向量表示,其中n是所有可能类别的数量。向量中的每个位置对应一个可能的类别,该位置上的值是1或0,表示该实例是否属于该类别。这段代码的目的是将给定的文本数据集转换为独热编码(One-Hot Encoding)。(注意斜杠的方向,如果安装了代码自动补全的会自动把斜杠补对,这个还挺好的)库是一个流行的中文分词工具,它使用了一种基于前缀词典的分词算法。

2024-05-22 19:42:43 963

原创 第P1周:手写数字识别

更具体地说,损失函数loss是由模型的所有权重w经过一系列运算得到的,若某个w的requires_grads为True,则w的所有上层参数(后面层的权重w)的.grad_fn属性中就保存了对应的运算,然后在使用loss.backward()后,会一层层的反向传播计算每个w的梯度值,并保存到该w的.grad属性中。是 NumPy 库中的一个函数,它的作用是从数组的形状中移除单维的条目,即维度大小为 1 的轴。这个函数的目的是为了减少数组的维度,使得数组的形状更加紧凑,便于进行某些操作或计算。

2024-05-20 10:12:56 751

原创 第G9周:ACGAN理论与实战

这段代码是生成对抗网络(GAN)的训练过程的一部分,它包括生成器、判别器、数据加载器、优化器以及一个保存生成图像的函数。代码首先定义了生成器和判别器,然后设置GPU支持,初始化权重,配置数据加载器,创建优化器,并定义了一个保存生成图像的函数。这段代码是生成对抗网络(GAN)的训练过程,其中包含了多个循环,用于迭代地训练生成器和判别器。判别器网络是生成对抗网络(GAN)的另一部分,它的目标是区分输入的图像是否是真实图像。生成器网络是生成对抗网络(GAN)的一部分,它学习如何从随机噪声生成真实的图像。

2024-05-08 21:09:25 616

原创 第G8周:ACGAN任务

从知乎博主“张宏伦”老师的文章里我们可以清晰的看到ACGAN和其他GAN的区别,下面引用文章里的一张图片。原文链接放到下面17 CGAN和ACGAN(下):来自知乎作者张宏伦条件生成对抗网络ACGAN最直观的功能便是既可以生成图像又可以进行分类。它是一种深度学习模型,由Ian Goodfellow等人在2014年提出生成对抗网络(GAN)的基础上进一步发展而来。ACGAN在原始GAN的基础上加入了条件控制,使得生成过程可以受到额外信息的指导,从而能够生成具有特定属性或者风格的数据。

2024-04-30 18:49:44 904

原创 NLP发展及其详解

RNN(循环神经网络)的结构特点在于其循环单元的设计,这种设计允许网络在处理序列数据时保持对之前信息的记忆。然而,传统的RNN存在一些问题,比如在训练过程中可能出现的梯度消失或梯度爆炸问题,这使得它们难以学习长距离依赖。为了解决这个问题,研究者们提出了更复杂的循环单元结构,如LSTM(长短时记忆网络)和GRU(门控循环单元),这些结构通过引入门控机制来更好地捕捉长距离依赖。总的来说,RNN的结构使其成为处理序列数据的强大工具,而其变体如LSTM和GRU则进一步增强了其在复杂序列建模任务中的能力。

2024-04-28 21:06:35 1025

原创 模型训练常见超参数的讲解

在模型训练中,潜在空间(latent space)是指嵌入在模型内部的一种低维、通常连续的表示空间,尤其是在无监督学习或生成模型(如自编码器、变分自编码器VAEs、生成对抗网络GANs)中。潜在空间的维度(latent dimensionality)是指这个空间的维数,即潜在变量的数量。

2024-04-28 20:12:33 982

原创 第G7周:Semi-Supervised GAN 理论与实战

SGAN(Spectral Generative Adversarial Networks)是一种生成对抗网络(GAN)的变体,它在训练过程中引入了谱正则化(spectral normalization)技术。GAN是一种深度学习模型,由生成器(Generator)和判别器(Discriminator)组成,它们通过相互对抗的方式训练,生成器试图生成逼真的样本,而判别器试图区分真实样本和生成样本。在传统的GAN中,生成器和判别器的训练过程可能会遇到梯度消失或梯度爆炸的问题,导致训练不稳定。

2024-04-26 12:13:52 370

原创 Pytorch重点概念笔记:都是本人学习中真实遇到的(一)

是PyTorch中的一个函数,用于减少张量的维数,具体来说,它会移除所有维数为1的维度。这个操作通常用于处理那些在特定操作(如卷积或池化)后可能产生不必要的单维度张量。在某些情况下,张量操作会生成形状中包含单维度的张量。例如,一个形状为的张量可能是在某个卷积操作后产生的,其中B是批量大小,C是通道数,而最后两个维度是1。在这些情况下,单维度并没有携带任何有用的空间信息,只是增加了张量的维数。的作用就是移除这些不必要的单维度,从而简化张量的形状。inputdim下面是一些在上面的例子中,第一个。

2024-04-22 15:48:47 1020

原创 Darknet框架优化介绍

Darknet是一个完全使用C语言编写的人工智能框架,可以使用CUDA的开源框架。主要应用于图像识别领域。具体的安装使用教程在阿里云社区有详细的介绍。

2024-04-19 21:25:54 490 2

原创 第G6周:CycleGAN实践

CycleGAN(循环生成对抗网络)是一种生成对抗网络(GAN),它能够在没有成对训练样本的情况下,将一个域(比如照片中的马)转换成另一个域(比如照片中的斑马)。生成器的作用是在两个域之间进行转换,而判别器则用于判断输入的图像是真实的还是由生成器生成的。生成器的目标是学习如何将输入图像转换成目标域中的图像,同时欺骗判别器,使其认为生成的图像是真实的。这段代码的主要目的是通过训练生成器来学习从源域(A)到目标域(B)的映射,并从目标域(B)到源域(A)的映射。当调用 parse_args()

2024-04-18 19:50:17 903

原创 第G5周:Pix2Pix理论与实战

综上所述,Pix2Pix以其强大的图像转换能力和较高的通用性在图像处理领域得到了广泛的应用,但同时也面临着计算资源要求高和模型调优难度大等挑战。方法将两个输入图像(例如真实图像和生成图像)按通道拼接起来,然后将拼接后的图像传递给判别器模型,最后返回一个标量作为判别结果。: 创建一个数据加载器对象,用于从指定路径加载图像数据集,并应用上述定义的图像变换。它能够将输入的图像转换为对应的输出图像,通常用于解决图像到图像的转换问题。: 将真实图像A、生成的虚假图像B和真实图像B在通道维度上进行拼接。

2024-04-05 14:06:48 899

原创 第G4周:CGAN|生成手势图像|可控制生成

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制一、前置知识CGAN(条件生成对抗网络)的原理是在原始GAN的基础上,为生成器和判别器提供 额外的条件信息。CGAN通过将条件信息(如类别标签或其他辅助信息)加入生成器和判别器的输入中,使得生成器能够根据这些条件信息生成特定类型的数据,而判别器则负责区分真实数据和生成数据是否符合这些条件。这种方式让生成器在生成数据时有了明确的方向,从而提高了生成数据的质量与相关性。CGAN的特点包括有监督学习

2024-03-11 22:11:03 1142

原创 第G3周:CGAN入门|生成手势图像

代码知识点函数用于计算二分类问题中的二元交叉熵损失。是PyTorch中提供的一个损失函数,主要用于二元分类问题。它计算的是真实标签与模型预测概率之间的二元交叉熵损失(Binary CrossEntropyLoss)。这个损失函数衡量的是模型输出概率与实际标签的一致性,其目的是在训练过程中最小化这个损失值,从而提高模型的预测准确性。在二元分类问题中,模型的输出通常是一个介于0和1之间的概率值,表示某个样本属于正类的概率。

2024-03-10 20:20:01 874

原创 第G2周:人脸图像生成(DCGAN)

DCGAN,即深度卷积生成对抗网络(Deep Convolutional Generative Adversarial Networks),是一种利用深度神经网络来生成与真实数据分布高度相似的新数据的算法。基本结构:DCGAN由两个深度卷积神经网络组成,一个生成器(Generator,记为G)和一个判别器(Discriminator,记为D)。生成器的作用是产生逼真的假数据(如图像),而判别器的任务是区分输入的数据是真实的还是由生成器产生的假数据。训练过程。

2024-03-04 21:45:23 844

原创 第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 610

原创 第T11周:优化器对比实验

*这个图我们可以直观的看出来使用Adam和SGD两种优化器对训练数据的影响,也直观的看出为什么一般用Adam就是比较好的选择,SGD随机性太强,震荡过于严重,得出的结果数据不好,容易陷入局部最优解;而Adam作为动量法的精华,使得参数比较平稳。但是根本的原则还是根据实际情况选择,SGD也有比较好的应用场景。图片总数为: 1800。

2024-02-23 11:14:37 886

原创 第T10周:数据增强

【代码】第T10周:数据增强。

2024-02-02 22:08:24 693

原创 第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 939 1

原创 第T8周:猫狗识别

函数是Keras库中的一个函数,用于在单个批次的数据上训练模型。这个函数的主要作用是在给定的输入数据和对应的目标数据上,使用模型的优化器进行一次前向传播和反向传播,从而更新模型的权重。如果设置为True,那么返回的结果将是一个字典,包含每个评估指标的值;如果设置为False,那么返回的结果将是一个列表,包含每个评估指标的值。还可以是一个字典,包含输入数据和目标数据的字典。如果设置为True,那么在每次调用train_on_batch()时,都会重置模型的评估指标。可选参数,用于指定每个样本的权重。

2023-12-26 21:33:27 918 1

原创 第T7周:咖啡豆识别

本周由于上周使用VGG-16完成的任务,已经将本周的任务研究的差不多,所以本周只有学习心得。主要是对学习率的调整,这次数据的数量是1200,比上次少了600.我想着学习率可能会低一些,不过试出来直接跌了一个数量级。最重要的就是掌握了调参的经验。设置学习率尽量少设1开头的,其他数字随便用,一般不会陷入局部最优解,也就是准确率卡在一个地方不动。当准确率出现较大幅度的震荡的时候就是学习率设高了。在峡谷两端跳过去跳过来的。最好的一个设计就是学习率梯度衰减。

2023-12-19 22:26:25 915 1

原创 第T6周:好莱坞明星识别

图片总数为: 1800。

2023-12-09 11:40:52 353

原创 第T5周:运动鞋品牌识别

这次加入了早停和指数变化学习率,确实是很有用的方法,但是最开始自己设置参数时,总感觉教案设置的学习率太大(虽然后面公布答案就是改的学习率)。然而,随着训练的深入,模型参数的变化速度可能会变得非常快,导致学习率过高,从而影响模型的训练效果。因此,为了解决这个问题,可以使用学习率衰减策略来逐渐降低学习率。最小变化量,这里设置为0.001,表示当验证集上的准确性变化小于这个值时,认为已经达到了停止训练的条件。容忍度,这里设置为20,表示如果在连续20个训练周期内验证集上的准确性没有提高,就触发提前终止训练。

2023-12-04 19:51:53 948

原创 第T4周:猴痘病识别

局部最优解是在某个特定搜索空间中,比其邻近解更优的解决方案。但若只着眼于局部,可能会忽视掉其他可能的全局最优解,导致结果并非真正最优化。在启发式算法中,局部最优值的陷入往往无法避免,因为这类算法本质上采用了一种贪心策略,这在客观上决定了不符合贪心规则的更好(或者最优)解会错过。陷入局部最优解并不全然是坏事。对于某些问题规模较大的情况,例如大规模NP-hard问题,找到全局最优解在合理的时间内几乎是不可能的。这时候,我们往往会倾向于接受局部最优解,因为局部最优解的质量不一定都是差的。

2023-12-03 21:50:29 859 1

原创 第T3周:天气识别

通过设置相同的seed值,可以确保每次运行程序时,生成的随机数序列是相同的。它的基本思想是在每次训练迭代中,随机选择一部分神经元,使其临时失效,即让这些神经元的激活值以一定的概率p变为0。但需要注意的是,Dropout不应在测试或验证阶段使用,因为它在训练阶段是随机的,而在测试阶段需要完整的网络来评估模型的准确性。是Matplotlib库中的一个函数,用于创建子图.接受三个参数:行数,列数和子图的索引号,例如,plt.subplot(1, 2, 1)将创建一个1行2列的子图网格,并选择第一个子图进行绘制。

2023-11-17 16:33:17 51

原创 第P1周:实现mnist手写数字识别

如果不是 None,这将在步长之后和数据加载之前在每个工作子进程上调用,并使用工作 id([0,num_workers - 1] 中的一个 int)的顺序逐个导入。如果设置为True,则会检查是否存在已下载的数据集,如果不存在,则会从互联网上下载并保存到指定的目录中。这是PyTorch中的一个函数,用于创建一个新的设备对象。是Pytorch自带的一个数据加载器,结合了数据集和取样器,并且可以提供多个线程处理数据集。: 提供图像转换的功能,包括常见的图像增强方法,如裁剪、旋转、翻转等。的 Iterable。

2023-11-12 12:29:34 47 1

原创 第T2周:彩色图片分类

是numpy库中的一个函数,它的主要功能是返回输入数组中最大值的索引。如果输入数组中出现多个最大值,np.argmax将返回第一个最大值的索引。这个函数有两个参数,第一个参数是需要找到最大值索引的数组,第二个参数是指定的轴,即沿着哪个轴寻找最大值。例如,当axis=1时,函数会按行比较并找出每行的最大值索引。值得注意的是,如果不指定轴,则函数会将整个数组平铺开来,找出其中最大的那个值的索引。是一个绘图函数,它接受两个参数:x轴的数据和y轴的数据。函数进行训练,并返回一个包含训练过程中各种指标的对象。

2023-11-12 10:52:34 46 1

原创 第T1周:实现mnist手写数字识别

学习率小时会导致收敛缓慢,学习率过大又会导致模型不易收敛。因此将图像归一化可以将不同维度的特征调整到相近的区间内,就可以用统一的学习率加速模型的训练。虽然从单看ReLU函数的左边或者右边,确实是线性的,整体来看,也确实是分段函数,说它是非线性函数也勉强说得过去。这是因为ReLU激活函数在输入值小于0时为0,大于0时保持原样,因此不存在梯度为0的情况,从而使得模型训练过程中的梯度求解变得容易。不会对模型的泛化准确度造成显著影响:ReLU激活函数在保持模型训练速度的同时,并不会对模型的泛化性能产生负面影响。

2023-11-05 15:33:34 69 1

原创 第J1周:ResNet-50算法实战与解析

【代码】第J1周:ResNet-50算法实战与解析。

2023-11-03 10:29:18 1101

原创 第P9周:YOLOv5-Backbone模块实现

在学习YOLOv5之前,必定要对v3和v4进行简要了解,上一周直接上手的v5,感觉有一些力不从心。这次从头来过,理清思路。首先,要清楚YOLO系列算法主要是运用于目标检测领域。YOLO的全称是You Only Look Once,它们的结构都由输入层、卷积层、残差块、批量归一化层、激活函数层和输出层组成。其中,YOLOv3引入了一种新的结构单元——空间金字塔池化模块(Spatial Pyramid Pooling module, SPP),以提高模型的准确性。

2023-10-27 19:31:39 113 1

原创 第P8周:YOLOv5-C3模块实现

(2)MAP:公式中的P(w|x)参数位置正好和MLE相反,相比MLE多了先验,多了贝叶斯公式的作用。对数据进行概率建模,得到数据在多大概率上能被分成一类,将P(x|w)最大化。(1)patch embedding:将原始二维数据切分,分成多个patch,每个相当于句子中的一个词,然后经过全连接层,将patch压成一个向量。实现将实验数据详细切分并全部吸收的功效,实现了多层次多角度的特征学习。transformer后的全连接层,就是一个MLP-head,将输入时的分类向量取出,输出分类类别。

2023-10-05 21:10:16 55

原创 第P7周:咖啡豆识别加学习心得

比如使用Tanh函数后,将原来的非线性数据映射到新的空间,形成新的分类。每个encoder包括self-attention和前馈网络两个核心,计算好各个部分的权重然后再进行标签,最后在进行新的构架Decoder在机器翻译中的作用是在重编的时候,不光要看已经翻译好的内容,还要兼顾encoder中的上下文信息。6.关于attention其实我们就可以理解为权重,而self-attention就是去除顺序,在输入一个词时去寻找它与所有词之间的联系,自己找到自己的特征,通过加权求和,获取对上下文的全局感知。

2023-09-29 15:02:57 114

原创 第P6周:好莱坞明星识别

我感觉就是将卷积核依次选取的部分进行一定程度的“模糊化”,好让以后识别到其他有类似的特征的图片能识别,就像人名之间重复很少,但是提取出来姓氏就能匹配到一大批相同姓氏的人,然后后面再经过平均池化啊最大池化这些再将提取出来的特征筛选,然后再全连接,就拼接成了相同姓氏的可能和你有关系的人的一个大的一维数据,我是这么理解的。我现在仔细看了这一段发现其实改这一段其实才是最最主要的,我一直以为这里是一个封装好的固定模型,我不能轻易改,但现在看来好像这里的损失函数,设置的epoch数都挺重要的。故以下这些数据都没有了。

2023-09-15 15:57:13 62

原创 第P5周:运动鞋品牌识别

2.导入数据二、构建简单的CNN网络三、训练模型1.编写训练函数2.编写测试函数3.设置动态学习率4.正式训练四、结果可视化1. Loss与Accuracy图

2023-09-07 20:12:25 147 1

原创 第P4周:猴痘病识别

num_batches = len(dataloader) # 批次数目,1875(60000/32)size = len(dataloader.dataset) # 训练集的大小,一共60000张图片。

2023-08-31 20:39:42 93

原创 第P3周:天气识别

【代码】P3:天气识别。

2023-08-25 18:45:38 47 1

空空如也

空空如也

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

TA关注的人

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