Transformer 编码器是自然语言处理(NLP)中常用的模型之一,它通过自注意力机制(Self-Attention)来捕捉序列中的长距离依赖关系。以下是一个简单的 Transformer 编码器代码示例。

代码结构

  1. 导入必要的库
  2. 定义编码器模型
  3. 训练模型
  4. 使用模型进行预测

代码示例

import torch
import torch.nn as nn

class Encoder(nn.Module):
    def __init__(self, vocab_size, d_model, nhead, num_layers):
        super(Encoder, self).__init__()
        self.embedding = nn.Embedding(vocab_size, d_model)
        self.transformer = nn.Transformer(d_model, nhead, num_layers)
        self.fc = nn.Linear(d_model, vocab_size)

    def forward(self, src):
        src = self.embedding(src)
        output = self.transformer(src)
        output = self.fc(output)
        return output

# 示例:使用模型
model = Encoder(vocab_size=10000, d_model=512, nhead=8, num_layers=6)
input_seq = torch.randint(0, 10000, (10, 32))
output = model(input_seq)

扩展阅读

更多关于 Transformer 的内容,您可以参考以下链接:

Transformer 模型结构图