RNN レイヤーを積み重ねる
最先端の結果を出すために、深い RNN モデルは数十から数百層になることがあります。
この演習では、LSTM セルのレイヤーを順番に積み重ねて、深い RNN モデルを作る方法を体験します。
そのために、最初の 2 つの LSTM レイヤーでは引数 return_sequences を True に、最後の LSTM レイヤーでは False に設定します。
さらに多くのレイヤーを持つモデルを作るには、同様にレイヤーを次々に追加するか、ループの中で .add() メソッドを使う関数を作成して、少ないコードで多数のレイヤーを追加できます。
この演習はコースの一部です
Kerasで学ぶ言語モデリングのためのRecurrent Neural Networks (RNNs)
演習の手順
LSTMレイヤーをインポートします。- 最初の 2 層ではシーケンスを返し、最後の
LSTMレイヤーではシーケンスを返さないようにします。 - 学習済みの重みを読み込みます。
- 得られた損失と正解率を出力します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import the LSTM layer
from tensorflow.keras.layers import ____
# Build model
model = Sequential()
model.add(LSTM(units=128, input_shape=(None, 1), return_sequences=____))
model.add(LSTM(units=128, return_sequences=____))
model.add(LSTM(units=128, return_sequences=____))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# Load pre-trained weights
model.____('lstm_stack_model_weights.h5')
____("Loss: %0.04f\nAccuracy: %0.04f" % tuple(model.evaluate(X_test, y_test, verbose=0)))