Osadzenia poprawiają wyniki
Czy warstwa osadzenia (embedding) poprawia dokładność modelu? Sprawdźmy to na tych samych danych IMDB.
Model został już wytrenowany przez 10 epok, tak jak poprzedni model z komórką simpleRNN. Aby porównać oba modele, w środowisku dostępny jest zbiór testowy (X_test, y_test) oraz stary model simpleRNN_model. Dokładność starego modelu jest zapisana w zmiennej acc_SimpleRNN.
Wszystkie wymagane moduły i funkcje są załadowane w środowisku: Sequential() z keras.models, Embedding i Dense z keras.layers oraz SimpleRNN z keras.layers.
To ćwiczenie jest częścią kursu
Rekurencyjne sieci neuronowe (RNN) do modelowania języka w Keras
Instrukcje do ćwiczenia
- Dodaj warstwę osadzenia do modelu.
- Oblicz dokładność modelu i zapisz ją w zmiennej
acc_embeddings. - Wyświetl dokładność starego i nowego modelu.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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, ____))