НачатьНачать бесплатно

Сеть GRU

Помимо LSTM, ещё одной популярной разновидностью рекуррентных нейронных сетей является управляемый рекуррентный блок — GRU (Gated Recurrent Unit). Его преимущество заключается в простоте: ячейки GRU требуют меньше вычислений, чем ячейки LSTM, при этом нередко не уступая им по качеству.

В качестве стартового кода вам предоставлено определение модели RNN, которое вы создавали ранее. Ваша задача — адаптировать его так, чтобы получить сеть GRU. Библиотеки torch и torch.nn as nn уже импортированы.

Это упражнение является частью курса

Глубокое обучение на PyTorch: средний уровень

Посмотреть курс

Инструкции к упражнению

  • Обновите определение модели RNN, чтобы получить сеть GRU; присвойте слой GRU атрибуту self.gru.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

class Net(nn.Module):
    def __init__(self):
        super().__init__()
        # Define RNN layer
        self.rnn = nn.RNN(
            input_size=1,
            hidden_size=32,
            num_layers=2,
            batch_first=True,
        )
        self.fc = nn.Linear(32, 1)

    def forward(self, x):
        h0 = torch.zeros(2, x.size(0), 32)
        out, _ = self.rnn(x, h0)  
        out = self.fc(out[:, -1, :])
        return out
Редактировать и запускать код