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
Rekursive neuronale Netze (RNNs) für die Sprachmodellierung mit Keras
Anleitung zur Übung
- 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 Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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, ____))