始める無料で始める

GRU ネットワーク

LSTM と並んで広く使われている再帰型ニューラルネットワークの一種が Gated Recurrent Unit(GRU)です。魅力はそのシンプルさにあり、GRU セルは LSTM セルより計算量が少ない一方で、しばしば同等の性能を発揮します。

ここでは、これまでに作成した RNN モデル定義のコードが与えられています。これを GRU ネットワークになるように書き換えてください。torchtorch.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
コードを編集して実行