НачатьНачать бесплатно

Стекирование слоёв 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)))
Редактировать и запускать код