Стекирование слоёв RNN
Глубокие модели RNN могут содержать десятки и сотни слоёв для достижения наилучших результатов.
В этом упражнении вы познакомитесь с тем, как создавать глубокие модели RNN, последовательно укладывая слои ячеек LSTM друг за другом.
Для этого задайте аргументу return_sequences значение True в первых двух слоях LSTM и значение False — в последнем слое LSTM.
Чтобы создавать модели с ещё большим числом слоёв, вы можете добавлять их последовательно или написать функцию, которая использует метод .add() внутри цикла и добавляет множество слоёв всего несколькими строками кода.
Это упражнение является частью курса
Рекуррентные нейронные сети (RNN) для языкового моделирования с Keras
Инструкции к упражнению
- Импортируйте слой
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)))