LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Füge eine „ Embedding “-Ebene als erste Ebene des Modells hinzu.
  • returning Fü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)))
Code bearbeiten und ausführen