Función PyTorch torch.nn.RNN

PyTorch torch.nn 参考手册Manual de referencia de PyTorch torch.nn


torch.nn.RNNEs el módulo básico de red neuronal recurrente en PyTorch.

Es la capa recurrente más simple, pero es propensa a enfrentar el problema del desvanecimiento del gradiente.

Definición de la función

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

Ejemplo de uso

Ejemplo 1: Uso básico

Ejemplo

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(Entrada:, x.shape)
print(Salida:, output.shape)
print(Estado oculto:, hidden.shape)

Ejemplo 2: RNN multicapa

Ejemplo

import torch
import torch.nn as nn

# RNN de 3 capas, con 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(Entrada:, x.shape)
print(Salida:, out.shape)
print(Estado oculto:, h.shape)  # (3, 2, 256)

Ejemplo 3: Activación no lineal

Ejemplo

import torch
import torch.nn as nn

# Por defecto se usa tanh como función de activación
rnn = nn.RNN(64, 64, batch_first=True)

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

print(Forma de la salida:, out.shape)
print(RNN usa tanh como activación por defecto)

Consideraciones

El RNN básico presenta el problema del desvanecimiento del gradiente; para secuencias largas se recomienda usar LSTM o GRU.


Casos de uso

  • Tareas de secuencias simples: secuencias cortas
  • Ejemplos didácticos: comprender los principios de RNN
  • Prototipado rápido: línea base simple

PyTorch torch.nn 参考手册Manual de referencia de PyTorch torch.nn

Otras extensiones