上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 132 下一页
摘要: 介绍一些其他的应用 阅读全文
posted @ 2025-02-28 15:54 最爱丁珰 阅读(13) 评论(0) 推荐(0)
摘要: 书上对残差网络的理解讲的有一点不清楚,解释一下。实际上,残差网络真正想干的事是通过在原网络上加入层/块(这就让原网络变得更深),而不改变原来的网络能够学习到的函数,以图\(7-8\)为例(这个图\(7-8\)画的是VGG的架构,与其下面的代码是相符合的,当然还有其他各种各样的残差块) 这两张图片中的 阅读全文
posted @ 2025-02-28 09:31 最爱丁珰 阅读(74) 评论(0) 推荐(0)
摘要: 当网络很深的时候会出现下面的问题 梯度消失是一般情况,所以上面讨论的是梯度消失的情况(每一层的梯度都很小,很多个很小的数相乘就会导致底部的层梯度比上面的层的梯度小);梯度爆炸是另外一回事 之所以会导致上面这种情况是因为不同层之间数据分布是有差别的。所以一个简单的想法就是我给数据的分布固定住 之所以不 阅读全文
posted @ 2025-02-28 08:49 最爱丁珰 阅读(25) 评论(0) 推荐(0)
摘要: 白色的\(1\times 1\)卷积层是用来降低通道数的,蓝色的卷积层是用来学习特征的 大致解释一下这些数字是怎么分配的。现在我们的通道数是\(192\),于是我们假设最后输出的通道数是\(256\);考虑这些通道如何分配:我们知道\(3\times 3\)的卷积层性质很好(参数不算太多,学习能力也 阅读全文
posted @ 2025-02-27 22:43 最爱丁珰 阅读(25) 评论(0) 推荐(0)
摘要: 本质和主要改进见下 因为模型更大了,所以要用丢弃法做正则;\(\text{ReLu}\)则比\(\text{Sigmoid}\)更能支撑更深的网络(解决了梯度消失);最大汇聚层则让输出更大,梯度更大,训练更容易 还有一些主要区别如下 步长也很大的原因也是当时的算力其实不是很够 池化层更大了就允许像素 阅读全文
posted @ 2025-02-27 20:27 最爱丁珰 阅读(17) 评论(0) 推荐(0)
摘要: 这里为什么要用bmm:看NWKernelRegression定义的过程,我们是将查询数定义为了批量,attention_weights在第1维度展开就可以提取每一个查询,将所有加了权的键变成行向量;values在最后一个维度展开,就将所有值变成了一个列向量;此时两者相乘就是预测值 阅读全文
posted @ 2025-02-26 15:15 最爱丁珰 阅读(27) 评论(0) 推荐(0)
摘要: 我觉得这个问题的核心在于理解为什么在实际应用中,尽管 RNN 可以动态处理不同长度的序列,我们还是需要截断和填充。RNN 本身确实可以通过循环结构处理任意长度的序列,但实际应用中,我们通常需要批量处理数据,而批量数据的形状需要固定。如果每个序列的长度不同,GPU 无法高效地进行并行计算,因为每次循环 阅读全文
posted @ 2025-02-25 14:04 最爱丁珰 阅读(26) 评论(0) 推荐(0)
摘要: 在TransformerEncoder中,要将嵌入表示先乘以嵌入维度的平方根的原因我觉得是让位置编码和特征维度的数值大小匹配,因为嵌入矩阵通常通过均匀分布初始化,例如在 PyTorch 的 nn.Embedding 中,默认使用均匀分布\([-\sqrt{\frac{3}{d}},\sqrt{\fr 阅读全文
posted @ 2025-02-25 08:56 最爱丁珰 阅读(5) 评论(0) 推荐(0)
摘要: 这个nn.LayerNorm有点搞笑我觉得,有个参数normalized_shape,输入想要归一化张量的最后几个维度,然后就将最后几个维度的元素看做一个整体进行归一化,如下 import torch import torch.nn as nn # 定义输入张量 (batch_size, seque 阅读全文
posted @ 2025-02-25 08:11 最爱丁珰 阅读(33) 评论(0) 推荐(0)
摘要: Transform网络首先构建编码器如下 首先将输入进行多头注意力转换,然后放入前向传播网络。这个过程会重复\(N\)次(\(N\)的取值一般为\(6\)) 在翻译的时候,我们首先将句子开始标识作为输入,输入进解码器,解码器首先会将输入进行多头注意力转换,然后会将编码器的输出一起,再进行多头注意力的 阅读全文
posted @ 2025-02-24 23:19 最爱丁珰 阅读(41) 评论(0) 推荐(0)
上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 132 下一页