НачатьНачать бесплатно

Эмбеддинги повышают качество модели

Улучшает ли слой эмбеддинга (векторного представления) точность модели? Проверим это на тех же данных IMDB.

Модель уже обучена на 10 эпохах — так же, как и предыдущая модель с ячейкой simpleRNN. Для сравнения моделей в среде доступны тестовая выборка (X_test, y_test), а также старая модель simpleRNN_model. Точность старой модели загружена в переменную acc_SimpleRNN.

Все необходимые модули и функции загружены в среде: Sequential() из keras.models, Embedding и Dense из keras.layers, а также SimpleRNN из keras.layers.

Это упражнение является частью курса

Рекуррентные нейронные сети (RNN) для языкового моделирования с Keras

Посмотреть курс

Инструкции к упражнению

  • Добавьте слой эмбеддинга в модель.
  • Вычислите точность модели и сохраните результат в переменную acc_embeddings.
  • Выведите точность старой и новой моделей.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# 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, ____))
Редактировать и запускать код