为了账号安全,请及时绑定邮箱和手机立即绑定

Keras - 从顺序 API 到函数式 API 的转换

Keras - 从顺序 API 到函数式 API 的转换

慕勒3428872 2021-07-07 14:58:46
我一直在关注 Towards Data Science 关于 word2vec 和 skip-gram 模型的教程,但我偶然发现了一个我无法解决的问题,尽管搜索了很多并尝试了多个不成功的解决方案。https://towardsdatascience.com/understanding-feature-engineering-part-4-deep-learning-methods-for-text-data-96c44370bbfa由于使用了 keras.layers 中的 Merge 层,它向您展示了如何构建 skip-gram 模型架构的步骤似乎已被弃用。我试图做的是将他的一段代码(在 Keras 的 Sequential API 中实现)转换为 Functional API,以通过将其替换为 keras.layers.Dot 层来解决 Merge 层的弃用问题。但是,我仍然停留在将两个模型(词和上下文)合并到最终模型中的这一步,其架构必须是这样的:这是作者使用的代码:from keras.layers import Mergefrom keras.layers.core import Dense, Reshapefrom keras.layers.embeddings import Embeddingfrom keras.models import Sequential# build skip-gram architectureword_model = Sequential()word_model.add(Embedding(vocab_size, embed_size,                         embeddings_initializer="glorot_uniform",                         input_length=1))word_model.add(Reshape((embed_size, )))context_model = Sequential()context_model.add(Embedding(vocab_size, embed_size,                  embeddings_initializer="glorot_uniform",                  input_length=1))context_model.add(Reshape((embed_size,)))model = Sequential()model.add(Merge([word_model, context_model], mode="dot"))model.add(Dense(1, kernel_initializer="glorot_uniform", activation="sigmoid"))model.compile(loss="mean_squared_error", optimizer="rmsprop")
查看完整描述

1 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

您正在将Model实例传递给图层,但是由于错误表明您需要将 Keras 张量(即图层或模型的输出)传递给 Keras 中的图层。你在这里有两个选择。一种是像这样使用实例的.output属性Model:


dot_output = layers.dot([word_model.output, context_model.output], axes=1, normalize=False)

或者等效地,您可以直接使用输出张量:


dot_output = layers.dot([word_reshape, context_reshape], axes=1, normalize=False)

此外,您需要应用Dense层,然后将层的dot_output实例Input作为 的输入传递Model。所以:


model_output = layers.Dense(1, kernel_initializer='glorot_uniform',

                            activation='sigmoid')(dot_output)


model = Model([word_input, context_input], model_output)


查看完整回答
反对 回复 2021-07-13
  • 1 回答
  • 0 关注
  • 227 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信