LoslegenKostenlos starten

Einbettungen verbessern die Leistung

Verbessert die Einbettungsschicht die Genauigkeit des Modells? Schauen wir mal in den gleichen IMDB-Daten nach.

Das Modell wurde schon mit 10 Epochen trainiert, genau wie das vorherige Modell mit der Zelle „ simpleRNN ”. Um die Modelle zu vergleichen, gibt's in der Umgebung ein Testset (X_test, y_test) und das alte Modell simpleRNN_model. Die Genauigkeit des alten Modells wird in die Variable „ acc_SimpleRNN “ geladen.

Alle benötigten Module und Funktionen, wie in der Umgebung geladen: Sequential() von keras.models, Embedding und Dense von keras.layers und SimpleRNN von keras.layers.

Diese Übung ist Teil des Kurses

<Kurs>Rekursive neuronale Netze (RNNs) für die Sprachmodellierung mit Keras</Kurs>
Kurs ansehen

Übungsanweisungen

  • Füge die Einbettungsebene zum Modell hinzu.
  • Berechne die Genauigkeit des Modells und speicher sie in der Variablen „ acc_embeddings “.
  • Druck die Genauigkeit der alten und neuen Modelle aus.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# Create the model with embedding
model = Sequential(name="emb_model")
model.add(____(input_dim=max_vocabulary, output_dim=wordvec_dim, input_length=max_len))
model.add(SimpleRNN(units=128))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

# Load pre-trained weights
model.load_weights('embedding_model_weights.h5')

# Evaluate the models' performance (ignore the loss value)
_, ____ = model.evaluate(X_test, y_test, verbose=0)

# Print the results
print("SimpleRNN model's accuracy:\t{0}\nEmbeddings model's accuracy:\t{1}".format(acc_simpleRNN, ____))
Code bearbeiten und ausführen