Fonction torch.nn.TransformerEncoderLayer de PyTorch

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


nn.TransformerEncoderLayerIl s'agit de la structure à une seule couche de l'encodeur Transformer.

Il contient des réseaux d'auto-attention et de propagation avant, et constitue l'unité de base de l'encodeur complet.

Définition de fonction

torch.nn.TransformerEncoderLayer(d_model, nhead, dim_feedforward=2048, dropout=0.1, activation='gelu', batch_first=True)

Parameters

  • d_model: Dimension du modèle
  • nhead: Nombre de têtes d'attention
  • dim_feedforward: Dimension de la couche cachée FFN

Exemples d'utilisation

Exemple 1 : Utilisation de base

Exemple

import torch
import torch.nn as nn

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

# Entrée
x = torch.randn(32, 100, 512)
output = layer(x)

print("Entrée :", x.shape, "-> Sortie :", output.shape)

Exemple 2 : Fonction d'activation personnalisée

Exemple

import torch
import torch.nn as nn

# Utiliser l'activation ReLU
layer_relu = nn.TransformerEncoderLayer(d_model=256, nhead=4, activation='relu', batch_first=True)

x = torch.randn(8, 50, 256)
out = layer_relu(x)

print("Sortie de l'activation ReLU :", out.shape)

Exemple 3 : Empilement multicouche

Exemple

import torch
import torch.nn as nn

# Empiler plusieurs couches
layer = nn.TransformerEncoderLayer(256, 4, batch_first=True)
encoder = nn.Sequential(
    couche,
    nn.TransformerEncoderLayer(256, 4, batch_first=True),
    nn.TransformerEncoderLayer(256, 4, batch_first=True)
)

x = torch.randn(4, 30, 256)
out = encoder(x)

print("Sortie de l'encodeur à 3 couches :", out.shape)

Scénarios d'utilisation

  • Construction de l'encodeur
  • Modèles tels que BERT
  • Compréhension du texte

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

Autres extensions