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

Сравнение количества параметров

Вы уже знаете, что унитарное кодирование (one-hot) плохо подходит для представления слов — оно даёт очень разреженные векторы. Слой Embedding позволяет получить плотное представление, однако требует обучения большого числа параметров.

В этом упражнении вы сравните количество параметров двух моделей: одной, использующей эмбеддинги (векторные представления), и другой — унитарное кодирование (one-hot).

Модель model_onehot уже загружена в среде, как и Sequential, Dense и GRU из keras. Также загружены параметры vocabulary_size=80000 и sentence_len=200.

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

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

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

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

  • Импортируйте слой Embedding из keras.layers.
  • В слое эмбеддинга укажите размер словаря плюс один в качестве входной размерности и размер предложения в качестве входной длины.
  • Скомпилируйте модель.
  • Выведите сводку модели с эмбеддингом.

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

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

# Import the embedding layer
from tensorflow.keras.layers import ____

# Create a model with embeddings
model = Sequential(name="emb_model")
model.add(Embedding(input_dim=____, output_dim=wordvec_dim, input_length=____, trainable=True))
model.add(GRU(128))
model.add(Dense(1))
model.____(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

# Print the summaries of the one-hot model
model_onehot.summary()

# Print the summaries of the model with embeddings
model.____
Редактировать и запускать код