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