Bessere Einstufung der Stimmung
In dieser Übung kommst du zurück zum Problem der Sentimentklassifizierung aus Kapitel 1.
Du wirst das Modell komplexer machen und seine Genauigkeit verbessern. Du wirst eine „ Embedding “-Schicht verwenden, um Wortvektoren auf dem Trainingssatz zu trainieren, und zwei „ LSTM “-Schichten, um längere Texte im Lernpfad zu verfolgen. Außerdem fügst du vor der Ausgabe eine zusätzliche Ebene „ Dense “ hinzu.
Das ist kein einfaches Modell mehr, und das Training kann eine Weile dauern. Deshalb gibt's ein vortrainiertes Modell, das du mit der Methode „ .load_weights() ” aus der Klasse „ keras.models.Sequential ” laden kannst. Das Modell wurde mit 10 Epochen trainiert und seine Gewichte sind in der Datei „ model_weights.h5 ” verfügbar.
Die folgenden Module sind in der Umgebung geladen: Sequential, Embedding, LSTM, Dropout, Dense.
Diese Übung ist Teil des Kurses
Rekursive neuronale Netze (RNNs) für die Sprachmodellierung mit Keras
Anleitung zur Übung
- Füge eine „
Embedding“-Ebene als erste Ebene des Modells hinzu. returningFüge eine zweite „LSTM“-Schicht mit 64 Einheiten hinzu und verknüpfe sie mit den Sequenzen.- Füge eine zusätzliche Schicht „
Dense“ mit 16 Einheiten hinzu. - Das Modell auswerten, um die Genauigkeit für den Trainingssatz auszudrucken.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Build and compile the model
model = Sequential()
model.add(____(vocabulary_size, wordvec_dim, trainable=True, input_length=max_text_len))
model.add(____(64, return_sequences=____, dropout=0.2, recurrent_dropout=0.15))
model.add(LSTM(64, return_sequences=False, dropout=0.2, recurrent_dropout=0.15))
model.add(____(16))
model.add(Dropout(rate=0.25))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# Load pre-trained weights
model.load_weights('model_weights.h5')
# Print the obtained loss and accuracy
print("Loss: {0}\nAccuracy: {1}".format(*model.____(X_test, y_test, verbose=0)))