堆疊 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)))