전이 학습
임베딩 레이어를 학습할 때는 매우 많은 파라미터를 학습해야 한다는 점을 보셨죠.
이 연습에서는 전이 학습을 사용하면 사전 학습된 가중치를 그대로 사용하고 업데이트하지 않을 수 있다는 것을 확인해 볼 거예요. 즉, 임베딩 레이어의 모든 파라미터는 고정되고, 모델은 다른 레이어의 파라미터만 학습하면 됩니다.
함수 load_glove 는 이미 환경에 로드되어 있으며, glove 행렬을 numpy.ndarray 벡터로 가져와요. 이 함수는 레슨 슬라이드에서 다룬 방법을 사용해, 이 연습 문제의 어휘 집합에 대해 임베딩 차원이 200인 glove 벡터를 불러옵니다.
이 연습은 강의의 일부입니다
Keras로 배우는 언어 모델링을 위한 순환 신경망(RNN)
연습 안내
- 미리 정의된 함수를 사용해 glove 벡터를 로드하세요.
- 사전 학습된 벡터에
Constant이니셜라이저를 사용하세요. - 출력 레이어를 유닛 1개의
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.____