Сравнение количества параметров
Вы уже знаете, что унитарное кодирование (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.____