遷移學習
你已經看到在訓練嵌入層時,需要學習大量參數。
在這個練習中,你會看到使用遷移學習時,可以直接用預先訓練好的權重,並且不再更新它們。也就是說,嵌入層的所有參數都會固定,模型只需要學習其他層的參數。
環境中已載入 load_glove 函式,會將 GloVe 矩陣取回為 numpy.ndarray 向量。它使用投影片中介紹的函式,為本練習中出現的詞彙擷取 200 維的 GloVe 嵌入向量(embedding)。
本練習屬於課程
使用 Keras 建立語言模型的循環神經網路(RNN)
練習說明
- 使用預先定義的函式載入 GloVe 向量。
- 在預訓練向量上使用
Constant初始化器。 - 新增輸出層為 1 個單元的
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.____