始める無料で始める

テキスト生成用の RNN モデルを作成する

PyBooks では、テキスト生成を行うアルゴリズムの開発を任されています。プロジェクトの目的は、本のタイトルのオートコンプリートです。まずはこのプロジェクトの立ち上げとして、Recurrent Neural Network (RNN) を試してみることにします。こうすることで、より複雑なモデルに進む前に RNN の特性を理解できます。

次のモジュールはすでにインポートされています:torchtorch.nnnn として。

変数 data には、Lewis Carroll の Alice's Adventures in Wonderland(不思議の国のアリス)の抜粋が設定されています。

この演習はコースの一部です

PyTorch で学ぶテキストの Deep Learning

コースを見る

演習の手順

  • RNNmodel クラスに RNN レイヤーと線形レイヤーを含めます。
  • 入力サイズを chars の長さ、隠れ状態サイズを 16、出力サイズを chars の長さとして、RNN モデルをインスタンス化します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Include an RNN layer and linear layer in RNNmodel class
class RNNmodel(nn.Module):
    def __init__(self, input_size, hidden_size, output_size):
        super(RNNmodel, self).__init__()
        self.hidden_size = hidden_size
        self.rnn = nn.____(input_size, hidden_size, batch_first=True)
        self.fc = nn.____(hidden_size, output_size)

    def forward(self, x):
      h0 = torch.zeros(1, x.size(0), self.hidden_size)
      out, _ = self.rnn(x, h0)  
      out = self.fc(out[:, -1, :])  
      return out

# Instantiate the RNN model
model = RNNmodel(____, ____, ____)
コードを編集して実行