Transfer learning
Ви бачили, що під час навчання шару вкладень потрібно вивчити дуже багато параметрів.
У цій вправі ви побачите, що під час використання transfer learning можна взяти попередньо натреновані ваги й не оновлювати їх. Тобто всі параметри шару вкладень будуть фіксованими, а моделі потрібно буде навчити лише параметри інших шарів.
Функція load_glove уже завантажена в середовище й повертає матрицю GloVe як вектор типу numpy.ndarray. Вона використовує функцію зі слайдів уроку, щоб отримати glove-вектори з 200-вимірними вкладеннями для словника, що використовується в цій вправі.
Ця вправа є частиною курсу
Recurrent Neural Networks (RNNs) для моделювання мови з Keras
Інструкції до вправи
- Скористайтеся заздалегідь визначеною функцією, щоб завантажити glove-вектори.
- Застосуйте ініціалізатор
Constantдо попередньо натренованих векторів. - Додайте вихідний шар як
Denseз однією одиницею. - Виведіть summary і перевірте параметри, що навчаються.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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.____