PyTorch torch.nn.RNN Funktion

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


torch.nn.RNNEs ist das grundlegende rekurrente neuronale Netzwerkmodul in PyTorch.

Es ist die einfachste rekurrente Schicht, aber sie ist anfällig für das Problem des verschwindenden Gradienten.

Funktionsdefinition

torch.nn.RNN(input_size, hidden_size, num_layers=1, bias=True, batch_first=True, dropout=0, bidirectional=False)

Anwendungsbeispiele

Beispiel 1: Grundlegende Verwendung

Beispiel

import torch
import torch.nn as nn

rnn = nn.RNN(input_size=256, hidden_size=128, num_layers=2, batch_first=True)

x = torch.randn(4, 10, 256)
output, hidden = rnn(x)

print("Eingabe:", x.shape)
print("Ausgabe:", output.shape)
print("Hidden:", hidden.shape)

Beispiel 2: Mehrschichtiges RNN

Beispiel

import torch
import torch.nn as nn

# 3-schichtiges RNN mit Dropout
rnn = nn.RNN(128, 256, num_layers=3, dropout=0.3, batch_first=True)

x = torch.randn(2, 50, 128)
out, h = rnn(x)

print("Eingabe:", x.shape)
print("Ausgabe:", out.shape)
print("Hidden:", h.shape)  # (3, 2, 256)

Beispiel 3: Nichtlineare Aktivierung

Beispiel

import torch
import torch.nn as nn

# tanh wird standardmäßig als Aktivierungsfunktion verwendet
rnn = nn.RNN(64, 64, batch_first=True)

x = torch.randn(1, 5, 64)
out, _ = rnn(x)

print("Ausgabeform:", out.shape)
print("RNN verwendet standardmäßig die tanh-Aktivierung")

Hinweise

Das einfache RNN hat das Problem des verschwindenden Gradienten; für lange Sequenzen werden LSTM oder GRU empfohlen.


Anwendungsfälle

  • Einfache Sequenzaufgaben: kurze Sequenzen
  • Lehrbeispiele: Verständnis der RNN-Prinzipien
  • Schnelles Prototyping: einfache Baseline

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

Andere Erweiterungen