开始使用免费开始使用

构建编码器-解码器 Transformer

现在您已经更新了 DecoderLayer 类,并在 TransformerDecoder 中做了相应更改,可以把所有组件组装起来了。由于这些类采用模块化、分层设计,您只需实例化其中两个就能构建编码器-解码器 Transformer:TransformerDecoderTransformerEncoder

本练习是课程的一部分

使用 PyTorch 的 Transformer 模型

查看课程

练习说明

  • 完成 forward() 前向计算,得到编码器与解码器的输出。
  • 实例化并调用 Transformer,对 input_tokens 使用提供的 src_masktgt_maskcross_mask

交互式实操练习

通过完成这段示例代码来试试这个练习。

class Transformer(nn.Module):
    def __init__(self, vocab_size, d_model, num_heads, num_layers, d_ff, max_seq_length, dropout):
        super().__init__()
        self.encoder = TransformerEncoder(vocab_size, d_model, num_layers, num_heads, d_ff, dropout, max_seq_length)
        self.decoder = TransformerDecoder(vocab_size, d_model, num_layers, num_heads, d_ff, dropout, max_seq_length)

    def forward(self, x, src_mask, tgt_mask, cross_mask):
        # Complete the forward pass
        encoder_output = self.encoder(____, ____)
        decoder_output = self.decoder(____, ____, tgt_mask, cross_mask)
        return decoder_output

# Instantiate and call the transformer
transformer = ____(vocab_size, d_model, num_heads, num_layers, d_ff, max_seq_length, dropout)
outputs = ____
print(outputs)
print(outputs.shape)
编辑并运行代码