テキスト生成用の RNN モデルを作成する
PyBooks では、テキスト生成を行うアルゴリズムの開発を任されています。プロジェクトの目的は、本のタイトルのオートコンプリートです。まずはこのプロジェクトの立ち上げとして、Recurrent Neural Network (RNN) を試してみることにします。こうすることで、より複雑なモデルに進む前に RNN の特性を理解できます。
次のモジュールはすでにインポートされています:torch、torch.nn は nn として。
変数 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(____, ____, ____)