PyTorch torch.nn.TransformerEncoderLayer Funktion

PyTorch torch.nn 参考手册PyTorch torch.nn Referenzhandbuch


nn.TransformerEncoderLayerEs ist die einschichtige Struktur des Transformer-Encoders.

Er enthält Self-Attention- und Feed-Forward-Netzwerke und ist die Grundeinheit des vollständigen Encoders.

Funktionsdefinition

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

Parameters

  • d_model: Modell-Dimension
  • nhead: Anzahl der Attention-Heads
  • dim_feedforward: Dimension der verborgenen FFN-Schicht

Anwendungsbeispiele

Beispiel 1: Grundlegende Verwendung

Beispiel

import torch
import torch.nn as nn

# Encoder-Schicht
layer = nn.TransformerEncoderLayer(d_model=512, nhead=8, batch_first=True)

# Eingabe
x = torch.randn(32, 100, 512)
output = layer(x)

print("Eingabe:", x.shape, "-> Ausgabe:", output.shape)

Beispiel 2: Benutzerdefinierte Aktivierungsfunktion

Beispiel

import torch
import torch.nn as nn

# ReLU-Aktivierung verwenden
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("ReLU-Aktivierungsausgabe:", out.shape)

Beispiel 3: Mehrschichtiges Stapeln

Beispiel

import torch
import torch.nn as nn

# Mehrere Schichten stapeln
layer = nn.TransformerEncoderLayer(256, 4, batch_first=True)
encoder = nn.Sequential(
    Schicht,
    nn.TransformerEncoderLayer(256, 4, batch_first=True),
    nn.TransformerEncoderLayer(256, 4, batch_first=True)
)

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

print("Ausgabe des 3-schichtigen Encoders:", out.shape)

Verwendungsszenarien

  • Aufbau des Encoders
  • Modelle wie BERT
  • Textverständnis

PyTorch torch.nn 参考手册PyTorch torch.nn Referenzhandbuch

Weitere Erweiterungen