自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 李沐72_深度学习优化算法——自学笔记

1.深度学习模型大部分是凸2.小批量随机梯度下降是最常用的优化算法3.冲量对梯度做平滑4.Adam对梯度做平滑,且对梯度各个维度值做重新调整。

2024-04-29 14:11:29 299

原创 李沐70_bert微调——自学笔记

1.即使下游任务各有不同,使用BERT微调时君只需要增加输出层2.但根据任务的不同,输入的表示,和使用Bert特征也会不一样!pip install d2l==0.17.6 ### 很重要,不要下载错了,对于colab。

2024-04-28 16:33:38 974

原创 李沐69_BERT训练集——自学笔记

mlm的前向推断返回encoded_X的所有掩蔽位置mlm_positions处的预测结果mlm_Y_hat。我们将tokens定义为长度为8的2个输入序列,其中每个词元是词表的索引。下面的MaskLM类来预测BERT预训练的掩蔽语言模型任务中的掩蔽标记。get_tokens_and_segments将一个句子或两个句子作为输入,然后返回BERT输入序列的标记及其相应的片段索引。通过掩码下的预测词元mlm_Y的真实标签mlm_Y_hat,我们可以计算在BERT预训练中的遮蔽语言模型任务的交叉熵损失。

2024-04-26 16:12:01 778

原创 李沐68_Transformer架构——自学笔记

在下面的实现中,输入X的形状(批量大小,时间步数或序列长度,隐单元数或特征维度)将被一个两层的感知机转换成形状为(批量大小,时间步数,ffn_num_outputs)的输出张量。值得注意的是,解码器的自注意力权重和“编码器-解码器”的注意力权重都有相同的查询:即以序列开始词元(beginning-of-sequence,BOS)打头,再与后续输出的词元共同组成序列。与编码器的自注意力的情况类似,通过指定输入序列的有效长度,输出序列的查询不会与输入序列中填充位置的词元进行注意力计算。

2024-04-26 15:38:55 975

原创 李沐67_自注意力——自学笔记

中, 行代表词元在序列中的位置,列代表位置编码的不同维度。从下面的例子中可以看到位置嵌入矩阵的第6列和第7列的频率高于第8列和第9列。第6列和第7列之间的偏移量(第8列和第9列相同)是由于正弦函数和余弦函数的交替。PositionalEncoding, 为了使用序列的顺序信息,通过在输入表示中添加 位置编码(positional encoding)来注入绝对的或相对的位置信息。二进制表示中,较高比特位的交替频率低于较低比特位, 与下面的热图所示相似,只是位置编码通过使用三角函数在编码维度上降低频率。

2024-04-25 17:59:09 187

原创 李沐66_使用注意力机制的seq2seq——自学笔记

1.seq2seq通过隐状态在编码器和解码器中传递信息2.注意力机制可以根据解码器RNN的输出来匹配到合适的编码器RNN的输出来更有效的传递信息。pip install d2l==0.17.6 ### 很重要,不要下载错了,对于colab。

2024-04-25 17:49:47 425

原创 李沐67_自注意力——自学笔记

中, 行代表词元在序列中的位置,列代表位置编码的不同维度。从下面的例子中可以看到位置嵌入矩阵的第6列和第7列的频率高于第8列和第9列。第6列和第7列之间的偏移量(第8列和第9列相同)是由于正弦函数和余弦函数的交替。PositionalEncoding, 为了使用序列的顺序信息,通过在输入表示中添加 位置编码(positional encoding)来注入绝对的或相对的位置信息。二进制表示中,较高比特位的交替频率低于较低比特位, 与下面的热图所示相似,只是位置编码通过使用三角函数在编码维度上降低频率。

2024-04-25 17:42:24 507

原创 李沐65_注意力分数——自学笔记

1.注意力分数是query和key的相似度,注意力权重是分数的softmax结果2.两种常见的分数计算:(1)将query和key合并起来进入一个单输出单隐藏层的MLP(2)直接将query和key做内积。

2024-04-24 18:01:30 524

原创 李沐64_注意力机制——自学笔记

注意力机制中,通过query(随意线索)和key(不随意线索)来有偏向性的选择输入。

2024-04-24 17:09:01 344

原创 李沐63_束搜索——自学笔记

4.束搜索在每次搜索时保存k个最好的候选:k=1时候是贪心算法,k=n时是穷举算法,一般k取5或者是10,但是越大实时性较差。3.时间复杂度O(knT):k=5,n=10000,T=10,knT=5X10^5。1.在seq2seq中使用贪心搜索来预测序列:将当前时刻预测概率最大的词输出。2.在每个时刻,对每个候选新加一项(n种可能),在kn个选项中选出最好的k个。1.最优算法:对所有可能的序列,计算它的概率,选取最好的那个。2.如果输出字典大小为n,序列长度为T,需考察n。1.保存最好的k个候选。

2024-04-24 16:02:22 440

原创 李沐62_序列到序列学习seq2seq——自学笔记

"英-法”数据集来训练这个机器翻译模型。

2024-04-23 17:10:20 958

原创 李沐61_编码器和解码器的架构——自学笔记

总而言之,“编码器-解码器”架构包含了一个编码器和一个解码器, 并且还拥有可选的额外的参数。在前向传播中,编码器的输出用于生成编码状态, 这个状态又被解码器作为其输入的一部分。在下面的解码器接口中,我们新增一个init_state函数, 用于将编码器的输出(enc_outputs)转换为编码后的状态。在编码器接口中,我们只指定长度可变的序列作为编码器的输入X。编码器:将输入编程转换成中间表达形式(特征)解码器:将特征解码成输出。编码器:将文本表示成向量。解码器:向量表示成输出。

2024-04-23 16:04:12 176

原创 李沐60_机器翻译数据集——自学笔记

假设同一个小批量中的每个序列都应该具有相同的长度num_steps, 那么如果文本序列的词元数目少于num_steps时, 我们将继续在其末尾添加特定的“”词元, 直到其长度达到num_steps;此外,我们还记录了每个文本序列的长度, 统计长度时排除了填充词元, 在稍后将要介绍的一些模型会需要这个长度信息。除此之外,我们还指定了额外的特定词元, 例如在小批量时用于将序列填充到相同长度的填充词元(“”), 以及序列的开始词元(“”)和结束词元(“”)。让我们绘制每个文本序列所包含的词元数量的直方图。

2024-04-23 15:40:05 602

原创 李沐58_深层循环神经网络——自学笔记

深度循环神经网络使用多个隐藏层来获得更多的非线性。

2024-04-23 15:16:37 304

原创 李沐57_长短期记忆网络LSTM——自学笔记

初始化模型参数:超参数num_hiddens定义隐藏单元的数量。我们按照标准差0.01的高斯分布初始化权重,并将偏置项设为0。定义模型:长短期记忆网络的隐状态需要返回一个额外的记忆元, 单元的值为0,形状为(批量大小,隐藏单元数)。训练和预测:引入的RNNModelScratch类来训练一个长短期记忆网络。实际模型的定义与我们前面讨论的一样: 提供三个门和一个额外的记忆元。2.输入门:决定不是忽略掉输入数据。3.输出门:决定是不是使用隐状态。1.忘记门:将值朝着0减少。首先加载时光机器数据集。

2024-04-23 14:58:14 512

原创 李沐56_门控循环单元——自学笔记

我们从标准差为0.01的高斯分布中提取权重, 并将偏置项设为0,超参数num_hiddens定义隐藏单元的数量, 实例化与更新门、重置门、候选隐状态和输出层相关的所有权重和偏置。训练结束后,我们分别打印输出训练集的困惑度, 以及前缀“time traveler”和“traveler”的预测序列上的困惑度。此函数返回一个形状为(批量大小,隐藏单元个数)的张量,张量的值全部为零。准备定义门控循环单元模型, 模型的架构与基本的循环神经网络单元是相同的, 只是权重更新公式更为复杂。1.不是每个观察值都是同等重要。

2024-04-23 14:39:40 608

原创 李沐55_循环神经网络RNN简洁实现——自学笔记

构造一个具有256个隐藏单元的单隐藏层的循环神经网络层rnn_layer。我们使用张量来初始化隐状态,它的形状是(隐藏层数,批量大小,隐藏单元数)。通过一个隐状态和一个输入,我们就可以用更新后的隐状态计算输出。需要强调的是,rnn_layer的“输出”(Y)不涉及输出层的计算: 它是指每个时间步的隐状态,这些隐状态可以用作后续输出层的输入。一个完整的循环神经网络模型定义了一个RNNModel类。注意,rnn_layer只包含隐藏的循环层,我们还需要创建一个单独的输出层。"""循环神经网络模型"""

2024-04-19 16:57:15 384

原创 李沐54_循环神经网络RNN——自学笔记

1.循环神经网络的输出取决于当下输入和前一时间的隐变量2.应用到语言模型中时,循环神经网络根据当前词预测下一次时刻词3.通常使用困惑度来衡量语言模型的好坏。

2024-04-19 16:54:18 327

原创 李沐53_语言模型——自学笔记

在迭代过程中,除了对原始序列可以随机抽样外, 我们还可以保证两个相邻的小批量中的子序列在原始序列上也是相邻的。这种策略在基于小批量的迭代过程中保留了拆分的子序列的顺序,因此称为顺序分区。基于相同的设置,通过顺序分区读取每个小批量的子序列的特征X和标签Y。通过将它们打印出来可以发现: 迭代期间来自两个相邻的小批量中的子序列在原始序列中确实是相邻的。在这里,参数batch_size指定了每个小批量中子序列样本的数目, 参数num_steps是每个子序列中预定义的时间步数。生成一个从0到34的序列。

2024-04-19 15:34:27 645

原创 李沐52_文本预处理——自学笔记

解析文本的常见预处理步骤。这些步骤通常包括:1.将文本作为字符串加载到内存中。2.将字符串拆分为词元(如单词和字符)。3.建立一个词表,将拆分的词元映射到数字索引。4.将文本转换为数字索引序列,方便模型操作。

2024-04-19 15:32:48 377

原创 李沐51_序列数据——自学笔记

使用一个相当简单的架构训练模型: 一个拥有两个全连接层的多层感知机,ReLU激活函数和平方损失。基于k=1,4,16,64,通过对整个序列预测的计算, 让我们更仔细地看一下k步预测的困难。生成一些数据:使用正弦函数和一些可加性噪声来生成序列数据, 时间步为1-1000。必须使用我们自己的预测(而不是原始数据)来进行多步预测。让我们看看效果如何。3马尔可夫模型假设当前只跟最近少数数据相关,从而简化模型。1.时序模型中,当前数据跟之前观察到的数据相关。单步预测:检查模型预测下一个时间步的能力。

2024-04-18 17:08:56 336

原创 李沐49_样式迁移——自学笔记

由于合成图像是风格迁移所需迭代的模型参数,我们只能在训练过程中通过调用extract_features函数来抽取合成图像的内容特征和风格特征。实验中,我们选择第四卷积块的最后一个卷积层作为内容层,选择每个卷积块的第一个卷积层作为风格层。由于我们还需要中间层的输出,因此这里我们逐层计算,并保留内容层和风格层的输出。使用VGG层抽取特征时,我们只需要用到从输入层到最靠近输出层的内容层或风格层之间的所有层。我们训练模型: 首先将内容图像和风格图像的高和宽分别调整为300和450像素,用内容图像来初始化合成图像。

2024-04-18 15:22:44 591

原创 李沐48_全连接卷积神经网络FCN——自学笔记

1.FCN是用深度神经网络来做语义分割的奠基性工作。2.它用转置卷积层来替换CNN最后的全连接层,从而可以实现每个像素的预测。使用在ImageNet数据集上预训练的ResNet-18模型来提取图像特征,并将该网络记为pretrained_net。创建一个全卷积网络net。它复制了ResNet-18中大部分的预训练层,除了最后的全局平均汇聚层和最接近输出的全连接层。给定高度为320和宽度为480的输入,net的前向传播将输入的高和宽减小至原来的1/32,即10和15。

2024-04-18 14:53:00 746

原创 李沐47_转置卷积

然后,W的矩阵乘法和向量化的X给出了一个长度为4的向量。重塑它之后,可以获得与上面的原始卷积操作所得相同的结果Y:我们刚刚使用矩阵乘法实现了卷积。将上面的常规卷积2X2的输出Y作为转置卷积的输入。定义了一个3X3的输入X和2X2卷积核K,然后使用corr2d函数计算卷积输出Y。与常规卷积不同,在转置卷积中,填充被应用于的输出(常规卷积将填充应用于输入)。输入矩阵X和卷积核矩阵K实现基本的转置卷积运算trans_conv。3.用id卷积卷,增大卷积核的数量可以达到增大特征图的目的。

2024-04-17 17:34:38 470

原创 李沐46_语义分割和数据集——自学笔记

通过继承高级API提供的Dataset类,自定义了一个语义分割数据集类VOCSegDataset。通过实现__getitem__函数,我们可以任意访问数据集中索引为idx的输入图像及其每个像素的类别索引。由于数据集中有些图像的尺寸可能小于随机裁剪所指定的输出尺寸,这些样本可以通过自定义的filter函数移除掉。定义了normalize_image函数,从而对输入图像的RGB三个通道的值分别做标准化。"""一个用于加载VOC数据集的自定义数据集"""

2024-04-17 16:29:15 473

原创 李沐45_SSD实现——自学笔记

使用L1范数损失,即预测值和真实值之差的绝对值。掩码变量bbox_masks令负类锚框和填充锚框不参与损失的计算。最后,我们将锚框类别和偏移量的损失相加,以获得模型的最终损失函数。沿用准确率平均结果,平均绝对误差来评价预测结果# 由于类别预测结果放在最后一维,argmax需要指定最后一维。

2024-04-17 15:47:43 1400

原创 李沐44_物体检测算法R_CNN_SSD_YOLO

4.SSD通过单神经网络来检测模型,以每个像素为中心的产生多个锚框,在多个段的输出上进行多尺度检验。如果有像素级别的标号,使用FCN来利用这些信息,提升CNN性能,常用于高精度场景。YOLO将图片均匀分成SXS个锚框,每个锚框预测B个边缘框,后续版本有持续改进。使用一个区域提议网络来替代启发式搜索来获得更好的锚框,常用于高精度场景。2.在每段都生成锚框,在底部段来拟合小物体,顶部段来拟合大物体。1.一个基础网络来抽取特征,如何多个卷积层块来减半高宽。2.使用预训练模型来对每个锚框抽取特征。

2024-04-16 17:59:04 447

原创 李沐42_锚框——自学笔记

1.首先生成大量锚框、赋予标号,每个锚框作为一个样本进行训练2.在预测时,使用NMS去掉冗余的预测。

2024-04-16 16:10:22 1006

原创 李沐41_物体检测和数据集——自学笔记

1.物体检测识别图片里的多个物体的类别和位置2.位置通常用边缘框表示。

2024-04-16 14:31:51 601

原创 李沐37_微调——自学笔记

1.微调通过使用在大数据上得到的预训练好的模型来初始化模型权重来提升精度2.预训练模型质量很重要3.微调通常速度更快、精度更高。

2024-04-15 16:45:23 876

原创 李沐36_数据增广——自学笔记

1.数据增广通过变形数据来获得多样性,从而使得模型泛化性能更好2.常见操作:翻转、切割、变色。

2024-04-15 16:05:03 969

原创 李沐29_残差网络ResNet——自学笔记

残差块使得很深的网络更加容易训练,甚至可以训练一千层的网络。

2024-04-11 16:32:02 280

原创 李沐28_批量归一化——自学笔记

1.批量归一化固定小批量中的均值和方差,然后学习出合适的偏移和缩放2.可以加速收敛速度,但一般不改变模型精度。

2024-04-11 15:32:33 369

原创 李沐27_含并行连结的网络GoogLeNet_Inception——自学笔记

1.Inception块用4条不同超出单数卷积层和池化层的路来抽取不同信息它的主要优点是模型参数小,计算复杂度低2.GoogLenet使用9个Inception块,是第一个达到上百层的网络,后续有改进。

2024-04-11 14:50:35 624

原创 李沐26_网络中的网络NiN——自学笔记

1.NiN块使用卷积层加两个1X1卷积层,后者对每个像素增加了非线线性2.NiN使用全局平均池化层来替代VGG和AlexNet中的全连接层,不容易过拟合,更少的参数个数。

2024-04-10 18:07:25 459

原创 李沐25_使用块的网络VGG——自学笔记

定义了一个名为vgg_block的函数来实现一个VGG块,3X3卷积核、填充为1(保持高度和宽度)的卷积层,和带有2X2汇聚窗口、步幅为2(每个块后的分辨率减半)的最大汇聚层。由于VGG-11比AlexNet计算量更大,因此我们构建了一个通道数较少的网络,足够用于训练Fashion-MNIST数据集。构建一个高度和宽度为224的单通道数据样本,以观察每个层输出的形状。2.不同次数的重复块得到不同的架构 VGG-16、VGG-19。1.带填充以保持分辨率的卷积层;3.汇聚层,如最大汇聚层。

2024-04-10 15:40:15 352

原创 李沐24_AlexNet——自学笔记

1.AlexNet是更大更深的LeNet,10被参数个数,260倍计算复杂度2.新引进了丢弃法,ReLu,最大池化层,和数据增强。

2024-04-10 15:08:31 339

原创 李沐23_LeNet——自学笔记

1.LeNet是早期成功的神经网络2.先使用卷积层来学习图片空间信息3.使用全连接层来转换到类别空间。

2024-04-09 17:17:19 612

原创 李沐22_池化层——自学笔记

1.池化层返回窗口中最大或平均值2.缓解卷积层会位置的敏感性3.同样有窗口大小、填充、和步幅作为超参数。

2024-04-09 16:32:06 523

原创 李沐21_卷积层多输入多输出通道——自学笔记

1.输出通道数是卷积层的超参数。2.每个输入通道有独立的二维卷积核,所有通道结果相加得到一个输出通道结果。3.每个输出通道有独立 的三维卷积核。

2024-04-09 15:36:44 293

空空如也

空空如也

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

TA关注的人

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