Układanie warstw RNN w stos
Głębokie modele RNN mogą mieć od kilkudziesięciu do kilkuset warstw, aby osiągać wyniki na poziomie stanu techniki.
W tym ćwiczeniu zobaczysz, jak tworzyć głębokie modele RNN, układając warstwy komórek LSTM jedna po drugiej.
W tym celu ustaw argument return_sequences na True w pierwszych dwóch warstwach LSTM, a na False w ostatniej warstwie LSTM.
Aby tworzyć modele z jeszcze większą liczbą warstw, możesz dodawać je kolejno jedna po drugiej lub napisać funkcję, która używa metody .add() wewnątrz pętli i dodaje wiele warstw za pomocą zaledwie kilku linii kodu.
To ćwiczenie jest częścią kursu
Rekurencyjne sieci neuronowe (RNN) do modelowania języka w Keras
Instrukcje do ćwiczenia
- Zaimportuj warstwę
LSTM. - Ustaw zwracanie sekwencji w dwóch pierwszych warstwach i wyłącz je w ostatniej warstwie
LSTM. - Wczytaj wstępnie wytrenowane wagi.
- Wyświetl uzyskaną stratę i dokładność.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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)))