Fonction torch.nn.TransformerEncoder de PyTorch

PyTorch torch.nn 参考手册Manuel de référence torch.nn de PyTorch


torch.nn.TransformerEncoderIl s'agit du module d'encodeur Transformer dans PyTorch.

Il se compose de plusieurs couches TransformerEncoderLayer et est utilisé pour traiter des séquences d'entrée.

Définition de fonction

torch.nn.TransformerEncoder(encoder_layer, num_layers, norm=None)

Parameters

  • encoder_layer: Couche d'encodeur
  • num_layers: Nombre de couches

Exemples d'utilisation

Exemple 1 : Utilisation de base

Exemple

import torch
import torch.nn as nn

# Couche d'encodeur unique
encoder_layer = nn.TransformerEncoderLayer(d_model=512, nhead=8, batch_first=True)

# Encodeur complet
transformer_encoder = nn.TransformerEncoder(encoder_layer, num_layers=6)

# Entrée
x = torch.randn(32, 100, 512)  # batch, seq, d_model
output = transformer_encoder(x)

print("Forme d'entrée :", x.shape)
print("Forme de sortie :", output.shape)

Exemple 2 : Classification de texte

Exemple

import torch
import torch.nn as nn

class TransformerClassifier(nn.Module):
    def __init__(self, vocab_size, d_model=256, nhead=4, num_layers=4):
        super(TransformerClassifier, self).__init__()
        self.embedding = nn.Embedding(vocab_size, d_model)
        self.pos_encoder = nn.Parameter(torch.randn(1, 512, d_model) * 0.1)

        encoder_layer = nn.TransformerEncoderLayer(d_model, nhead, batch_first=True)
        self.encoder = nn.TransformerEncoder(encoder_layer, num_layers)
        self.fc = nn.Linear(d_model, 10)

    def forward(self, x):
        # Encodage positionnel simple
        x = self.embedding(x) + self.pos_encoder[:, :x.size(1), :]
        x = self.encoder(x)
        # Prendre le premier jeton
        return self.fc(x[:, 0, :])

model = TransformerClassifier(10000)
x = torch.randint(0, 10000, (32, 100))
output = model(x)

print("Forme de sortie :", output.shape)

Cas d'utilisation

  • BERT: notions de base de l'encodeur
  • Classification de texte
  • Extraction de caractéristiques

PyTorch torch.nn 参考手册Manuel de référence torch.nn de PyTorch

Autres extensions