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

Трансферное обучение

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

В этом упражнении вы увидите, что при использовании трансферного обучения можно применять предобученные веса без их обновления. Это означает, что все параметры слоя эмбеддингов будут зафиксированы, и модели останется обучить только параметры остальных слоёв.

Функция load_glove уже доступна в среде выполнения и возвращает матрицу GloVe в виде вектора numpy.ndarray. Она использует метод, рассмотренный на слайдах урока, для получения векторов GloVe с 200 измерениями эмбеддинга для словаря, используемого в этом упражнении.

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

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

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

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

  • Используйте заранее определённую функцию для загрузки векторов GloVe.
  • Примените инициализатор Constant к предобученным векторам.
  • Добавьте выходной слой типа Dense с одним нейроном.
  • Выведите сводку модели и проверьте количество обучаемых параметров.

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

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

# Load the glove pre-trained vectors
glove_matrix = ____('glove_200d.zip')

# Create a model with embeddings
model = Sequential(name="emb_model")
model.add(Embedding(input_dim=vocabulary_size + 1, output_dim=wordvec_dim, 
                    embeddings_initializer=____(glove_matrix), 
                    input_length=sentence_len, trainable=False))
model.add(GRU(128))
model.add(____)
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

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