始める無料で始める

RNN レイヤーを積み重ねる

最先端の結果を出すために、深い RNN モデルは数十から数百層になることがあります。

この演習では、LSTM セルのレイヤーを順番に積み重ねて、深い RNN モデルを作る方法を体験します。

そのために、最初の 2 つの LSTM レイヤーでは引数 return_sequencesTrue に、最後の 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)))
コードを編集して実行