Функция PyTorch torch.nn.RNN

PyTorch torch.nn 参考手册Справочное руководство PyTorch torch.nn


torch.nn.RNNЭто базовый модуль рекуррентной нейронной сети в PyTorch.

Это самый простой рекуррентный слой, но он подвержен проблеме исчезающего градиента.

Определение функции

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

Примеры использования

Пример 1: Базовое использование

Пример

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("Вход:", x.shape)
print("Выход:", output.shape)
print("Hidden:", hidden.shape)

Пример 2: многослойная RNN

Пример

import torch
import torch.nn as nn

# 3-слойная RNN с 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("Вход:", x.shape)
print("Вывод:", out.shape)
print("Hidden:", h.shape)  # (3, 2, 256)

Пример 3: нелинейная активация

Пример

import torch
import torch.nn as nn

# tanh используется как функция активации по умолчанию
nn. = RNNbatch_first(64, 64, batch_first=True)

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

print("Форма выхода:", out.shape)
print("RNN использует tanh активацию по умолчанию")

Примечания

У базовой RNN есть проблема исчезающего градиента; для длинных последовательностей рекомендуется LSTM или GRU.


Сценарии использования

  • Простые задачи на последовательностях: короткие последовательности
  • Учебные примеры: понимание принципов RNN
  • Быстрое прототипирование: простая базовая модель

PyTorch torch.nn 参考手册Справочное руководство PyTorch torch.nn

Другие расширения