李沐
Marshal~
这个作者很懒,什么都没留下…
展开
-
bert的数据处理
一、将数据下载下来二、构造相邻句子token_a和token_b百分之五十是下一个句子。百分之五十是随机拼接的来自文章的句子。这里已经知道正确答案is_next为true或false利用上面的函数构建循环在文章中构建token_a和token_b,这时候我们已经知道他们是不是相邻的,我之后可以用bert做预测实现监督学习进一步对token_a和token_b进行掩码处理,三、继续构造输入:进行掩码(1)就是不断的地进行构造,直到长度大于等于原句子,这也就代表全部转化完成。(2)百分之原创 2021-10-26 11:06:12 · 698 阅读 · 0 评论 -
bert模型
一、bert的输入处理(1)如果有token_b就用分割符进行拼接,并返回[0][0][0][0][0][0][0][0][0][1][1][1][1]v1][1]这样的标记(2)如果没有token_b就用分割符包装token_a,并返回[0][0][0][0][0][0][0][0][0]二、bert的encoder结构就和transformers的encoder类似,下面讲区别:就是多了segment的embedding以及随机初始化的扰动embedding这里加入可学习的位置编码,也就原创 2021-10-26 07:46:12 · 235 阅读 · 0 评论 -
transformers
一、多头注意力机制(1)将q、k、v加入Linear层(2)多头,就是同时处理多组,这里使用了一个将多组q、多组k、多组v压缩的技术也就是下面的那张图片显示的,通过将维度扩展一维:用四维张量保存多个三维张量。(3)集体送入attention函数处理(4)解压缩,将四维张量从新还原成多个三维张量(5)并对其进行拼接二、前馈网络就是一个mllp,就是线性层加上激活层再加上线性层。这里传入的是三维张量,dense也就是Linear接受的是二维,会把前两维当做样本,第三维当做特征。三、残差和原创 2021-10-25 15:30:02 · 293 阅读 · 0 评论 -
BN与LN归一化
d:特征b:batch_size将多少数据打包len:长度BN就是取出一个特征(所有样本的一个特征),对其进行归一化,直到取完全部特征。LN就是取出所有的batch,取出每个batch中的一个样本进行归一化。...原创 2021-10-25 14:14:13 · 184 阅读 · 0 评论 -
核回归的实现
原创 2021-10-25 13:51:02 · 281 阅读 · 0 评论 -
Seq2SeqEncoder和mask
import collectionsimport mathimport torchfrom torch import nnfrom d2l import torch as d2lclass Seq2SeqEncoder(d2l.Encoder): def __init__(self,vocab_size,embed_size,num_hiddens,num_layers,dropout=0,**kwargs): #num_hiddens是一层有多少的隐藏单元原创 2021-10-25 11:27:13 · 168 阅读 · 0 评论 -
编码器-解码器
一、编码器的基本架构forward层:传入一个x,输出一个outfrom torch import nnclass Encoder(nn.Module): def __init__(self,**kwargs): super(Encoder, self).__init__(**kwargs) def forward(self,x,*args): raise NotImplementedError二、解码器的基本架构def init_state(se原创 2021-10-24 18:57:08 · 2886 阅读 · 0 评论 -
pytorch_模型_lstm(加深)
一、LSTM候选记忆单元(ct上面加浪线)(函数类似一个隐藏层传递)记忆单元:是否忘记之前的信息以及是否保留输出最后隐藏层再次决定:要不要把记忆单元的(之前的ht-1)的东西输出二、代码实现import torchfrom torch import nnfrom torch.nn import functional as Ffrom d2l import torch as d2limport Rnnbatch_size,num_steps=32,35train_iter,vocab=原创 2021-09-27 11:35:53 · 199 阅读 · 0 评论 -
nlp_序列模型
nlp序列模型时序模型:当前的数据和之前观察到的数据相关自回归模型:使用自身过去的数据预测未来马尔科夫模型:假设只跟最近的少数数据相关,从而简化模型······ 我的当前数据之和x个过去数据相关(而不是t-1个数据,t-1太多了)。这个x的作用:1、t-1是变长的处理起来很不方便。2、根本不需要去分析那么长,我随便说的一些话,第5句里面的词和第一句的词很可能没有关系。潜变量:使用潜变量概括历史就是利用ht=f(x1,…,xt-1)来表示前面的信息,这里主要是可以更加方便的更新原创 2021-09-25 15:47:33 · 151 阅读 · 0 评论 -
李沐_pytorch补充
1、注册带有参数的层时候就要使用nn.Parameter()self.pos_embedding = nn.Parameter(torch.randn(1, num_patches+1, dim))self.cls_token = nn.Parameter(torch.randn(1, 1, dim))self.v=nn.Parameter()self.v=nn.Linear()要将左侧的v注册成为参数,右侧就需要进行nn.Parameter这个操作,第二个没有是因为Linear本身就是封装好了原创 2021-09-24 15:45:51 · 134 阅读 · 0 评论