Embeddings verbeteren de prestaties
Verbetert de embeddinglaag de nauwkeurigheid van het model? Laten we het controleren op dezelfde IMDB-gegevens.
Het model is al getraind met 10 epochs, net als het vorige model met een simpleRNN-cel. Om de modellen te vergelijken, is er een testset (X_test, y_test) beschikbaar in de omgeving, evenals het oude model simpleRNN_model. De nauwkeurigheid van het oude model is geladen in de variabele acc_SimpleRNN.
Alle vereiste modules en functies zijn in de omgeving geladen: Sequential() uit keras.models, Embedding en Dense uit keras.layers en SimpleRNN uit keras.layers.
Deze oefening maakt deel uit van de cursus
Recurrent Neural Networks (RNN's) voor taalmodellen met Keras
Oefeninstructies
- Voeg de embeddinglaag toe aan het model.
- Bereken de nauwkeurigheid van het model en sla die op in de variabele
acc_embeddings. - Print de nauwkeurigheid van het oude en het nieuwe model.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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, ____))