Stapla RNN-lager
Djupa RNN-modeller kan ha tiotals till hundratals lager för att uppnå topprestanda.
I den här övningen får du en inblick i hur man skapar djupa RNN-modeller genom att stapla lager av LSTM-celler efter varandra.
För att göra detta sätter du argumentet return_sequences till True i de första två LSTM-lagren och till False i det sista LSTM-lagret.
Vill du skapa modeller med ännu fler lager kan du fortsätta lägga till dem ett efter ett, eller skapa en funktion som använder metoden .add() inuti en loop för att lägga till många lager med bara några rader kod.
Den här övningen är en del av kursen
Återkommande neurala nätverk (RNN) för språkmodellering med Keras
Övningsinstruktioner
- Importera
LSTM-lagret. - Returnera sekvenserna i de första två lagren och returnera inte sekvenserna i det sista
LSTM-lagret. - Läs in de förtränade vikterna.
- Skriv ut den förlust och noggrannhet som erhölls.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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)))