如何在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
作为初始化程序?
答案 0 :(得分:2)
您可以参考以下answer:
将trainable
设置为true
时,您可以对嵌入层进行微调。
设置embeddings_initializer
将与trained
标志矛盾。您不应该将其设置为常数,也可以仅使用embedding_matrix
设置权重。您可以参考以下链接:
关于您的评论,weights
在哪里,请参考以下链接:Keras Embedding ,where is the "weights" argument?