開始使用免費開始

堆疊 RNN 層

深層 RNN 模型為了達到最先進的表現,可能包含數十到上百個層。

在這個練習中,你會先體驗如何透過連續堆疊多個 LSTM 單元層來建立深層 RNN 模型。

為此,你需要將前兩個 LSTM 層的 return_sequences 參數設為 True,而最後一個 LSTM 層設為 False

如果要建立含有更多層的模型,你可以持續一層接一層地加入,或撰寫一個在迴圈中使用 .add() 方法的函式,用少量程式碼就能加入多個層。

本練習屬於課程

使用 Keras 建立語言模型的循環神經網路(RNN)

檢視課程

練習說明

  • 匯入 LSTM 層。
  • 在前兩個層回傳序列,最後一個 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)))
編輯並執行程式碼