迁移学习
您已经看到,训练一个嵌入层需要学习大量参数。
在本练习中,您将看到使用迁移学习时,可以直接使用预训练权重且不再更新它们。也就是说,嵌入层的所有参数都会固定不变,模型只需学习其他层的参数。
环境中已提供函数 load_glove,它会以 numpy.ndarray 向量的形式返回 GloVe 矩阵。该函数基于本课幻灯片介绍的方法,获取本练习词表对应的 200 维嵌入向量。
本练习是课程的一部分
使用 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.____