【问题标题】:Issue with embedding pre-trained model in Keras在 Keras 中嵌入预训练模型的问题
【发布时间】:2020-03-27 01:43:10
【问题描述】:

我有一个预训练的 Fasttext 模型,我想将它嵌入到 Keras 中。

model = Sequential()
model.add(Embedding(MAX_NB_WORDS, 
                    EMBEDDING_DIM, 
                    input_length=X.shape[1],
                    input_length=4,
                    weights=[embedding_matrix],
                    trainable=False))

但它没有用。

我发现很多人在将预训练模型嵌入 Keras 时遇到了同样的问题,而且他们都没有解决方案。

weightsembeddings_initializer 似乎已被弃用。

有没有其他方法可以解决这个问题? 提前致谢

【问题讨论】:

  • “没用”是什么意思?
  • TypeError: add() 得到了一个意外的关键字参数“权重”。似乎不推荐使用“权重”。所以'没有工作'意味着预训练的模型不能通过这种方法嵌入到 Keras 中。

标签: python tensorflow keras


【解决方案1】:

Keras 的嵌入层不推荐使用权重参数。

新版本的嵌入层如下所示 -

embedding_layer = Embedding(num_words,
                            EMBEDDING_DIM,
                            embeddings_initializer=Constant(embedding_matrix),
                            input_length=MAX_SEQUENCE_LENGTH,
                            trainable=False)

您可以在此处找到最新版本的嵌入层详细信息 - Keras Embedding Layer

您可以在此处找到预训练词嵌入的示例 - Pretrained Word Embedding

【讨论】:

  • @james_24 - 如果我已经回答了您的问题,请您接受并投票。谢谢。
  • @james_24 - 如果您对答案感到满意,请您将答案标记为已接受。请单击答案旁边的复选标记,将其从灰色切换为已填充。
猜你喜欢
  • 2019-11-14
  • 2018-12-21
  • 2020-09-03
  • 1970-01-01
  • 1970-01-01
  • 2019-01-20
  • 1970-01-01
  • 2017-06-05
  • 1970-01-01
相关资源
最近更新 更多