如何微调嵌入层中的预训练嵌入?

时间:2020-10-03 12:14:24

标签: python python-3.x tensorflow keras tf.keras

如何在tf.keras的嵌入层中微调预训练的嵌入?

# embedding layer with pre trained weights
embedding_layer = layers.Embedding(
    input_dim=self.vocab_size + 2,
    output_dim=self.emb_size,
    embeddings_initializer=initializers.Constant(embedding_matrix),
    mask_zero=mask_zero,
    trainable=False
)

如果我只是更改trainable = True,它会微调我拥有的经过预训练的嵌入吗?还是我还必须删除initializers.Constant作为初始化程序?

1 个答案:

答案 0 :(得分:2)

您可以参考以下answer

trainable设置为true时,您可以对嵌入层进行微调。

设置embeddings_initializer将与trained标志矛盾。您不应该将其设置为常数,也可以仅使用embedding_matrix设置权重。您可以参考以下链接:

  1. setting the weights
  2. meaning of constat

关于您的评论,weights在哪里,请参考以下链接:Keras Embedding ,where is the "weights" argument?