Gli embedding migliorano le prestazioni
Lo strato di embedding migliora l'accuratezza del modello? Verifichiamolo sullo stesso insieme di dati IMDB.
Il modello è già stato addestrato per 10 epoche, come nel modello precedente con cella simpleRNN. Per confrontare i modelli, nell'ambiente sono disponibili un set di test (X_test, y_test) e il vecchio modello simpleRNN_model. L'accuratezza del vecchio modello è caricata nella variabile acc_SimpleRNN.
Tutti i moduli e le funzioni necessari sono caricati nell'ambiente: Sequential() da keras.models, Embedding e Dense da keras.layers e SimpleRNN da keras.layers.
Questo esercizio fa parte del corso
Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras
Istruzioni dell'esercizio
- Aggiungi lo strato di embedding al modello.
- Calcola l'accuratezza del modello e salvala nella variabile
acc_embeddings. - Stampa l'accuratezza del vecchio e del nuovo modello.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# 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, ____))