这里用了一个create_mask来生成需要的4个mask,分别为src_mask为保留所有、tgt_mask为下三角保留、src_padding_mask和tgt_padding_mask保留非PAD部分 defcreate_mask(src,tgt):src_seq_len=src.shape[0]tgt_seq_len=tgt.shape[0]tgt_mask=generate_square_subsequent_mask(tgt_seq_len)src_mask=torch.zeros((...
这里面最大的区别就是*mask_和*_key_padding_mask,_至于*是src还是tgt,memory,这不重要,模块出现在encoder,就是src,出现在decoder,就是tgt,decoder每个block的第二层和encoder做cross attention的时候,就是memory。 *mask 对应的API是attn_mask,*_key_padding_mask对应的API是key_padding_mask 我们看看torch/nn/...
x = self.sublayer[0](x, lambda x: self.self_attn(x, x, x, tgt_mask)) #接着进入第二个子层,这个子层中常规的注意力机制,q是输入x;k,v是编码层输出memory,同样也传入source_mask,但是进行源数据遮掩的原因并非是抑制信息泄露,而是遮蔽掉对结果没有意义的padding。 x = self.sublayer[1](x, l...
tgt (Tensor) – decoder 输入矩阵 memory (Tensor) – encoder 编码器层最终的输出矩阵 tgt_mask (Optional[Tensor]) – decoder输入矩阵的mask矩阵, 主要包含pad mask 与sequence mask memory_mask (Optional[Tensor]) – the mask for the memory sequence (optional). Encoder层的mask矩阵,主要用来交互层的使...
因此需要忽略),我(和nn.Transformerdocumentation)称为tgt_key_padding_mask。
tgt_mask = encoded_tgt['attention_mask'] tgt_len = tgt_mask.sum(dim=1).to(self.device) output = self.model( input_ids=src_tokens, attention_mask=src_mask, labels=tgt_tokens ) logits = output.logits.view(-1, self.model.config.vocab_size) ...
在这种情况下,因果掩码(tgt_mask,根据nn.Transformers文档)是根据序列长度自动计算的,并与传递的...
Open 🐛 Describe the bug Two tokens are decoded in this example. Ideally, the output feature on the first token should be the same regardless of the sequence length as a square subsequent mask is applied. Here are two ways to generate the tgt mask. One is from the official example where...
norm – the layer normalizationcomponent(optional).forward(tgt,memory,tgt_mask=None,memory_mask=None,tgt_key_padding_mask=None,memory_key_padding_mask=None)tgt(Tensor)– decoder 输入矩阵memory(Tensor)– encoder 编码器层最终的输出矩阵tgt_mask(Optional[Tensor])– decoder输入矩阵的mask矩阵, ...
x = layer(x, memory, src_mask, tgt_mask) return self.norm(x) 2. 解码器层 每个解码器层由三个子层连接结构组成,第一个子层连接结构包括一个多头自注意力子层和规范化层以及一个残差连接,第二个子层连接结构包括一个多头注意力子层和规范化层以及一个残差连接,第三个子层连接结构包括一个前馈全连接...