Transformer 编码器是自然语言处理(NLP)中常用的模型之一,它通过自注意力机制(Self-Attention)来捕捉序列中的长距离依赖关系。以下是一个简单的 Transformer 编码器代码示例。
代码结构
- 导入必要的库
- 定义编码器模型
- 训练模型
- 使用模型进行预测
代码示例
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 模型结构图