如何将Keras顺序API转换为功能性API

用户名

我是nlp的新手,并尝试从该站点学习跳过语法:

https://towardsdatascience.com/understanding-feature-engineering-part-4-deep-learning-methods-for-text-data-96c44370bbfa

我正在尝试实现skip gram,我遇到的问题是下面的代码是keras的顺序API,它不支持合并(稍后在代码中显示如下)

word_model.add(Embedding(vocab_size, embed_size,
                         embeddings_initializer="glorot_uniform",
                         input_length=1))
word_model.add(Reshape((embed_size, )))

所以我试图将其转换为功能性api

word_model = Embedding(input_dim=vocab_size, output_dim=embed_size,
                         embeddings_initializer="glorot_uniform",
                         input_length=1)

word_model = Reshape(target_shape= (embed_size,))(word_model)

但是我得到以下错误意外地找到了类型的实例<class 'keras.layers.embeddings.Embedding'>预期为符号张量实例。

我试过重塑层和背景,但仍然无法正常工作。

请提出如何转换或使其工作的建议。

提前致谢。

from keras.layers import Merge
from keras.layers.core import Dense, Reshape
from keras.layers.embeddings import Embedding
from keras.models import Sequential

# build skip-gram architecture
word_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")

# view model summary
print(model.summary())

# visualize model structure
from IPython.display import SVG
from keras.utils.vis_utils import model_to_dot

SVG(model_to_dot(model, show_shapes=True, show_layer_names=False, 
                 rankdir='TB').create(prog='dot', format='svg'))
安娜·克罗格(Anna Krogager)

您首先需要一个输入层,然后将其传递给嵌入层。以下是使用两个输入(一个用于目标单词,一个用于上下文单词)的示例:

target_input = keras.layers.Input(input_shape)
context_input = keras.layers.Input(input_shape)

target_emb = Embedding(input_dim=vocab_size, output_dim=embed_size,
                         embeddings_initializer="glorot_uniform",
                         input_length=1)(target_input)
target_emb = Reshape((embed_size,))(target_emb)

context_emb = Embedding(input_dim=vocab_size, output_dim=embed_size,
                         embeddings_initializer="glorot_uniform",
                         input_length=1)(context_input)
context_emb = Reshape((embed_size,))(target_emb)

# Add the remaining layers here...

model = keras.models.Model(inputs=[target_input, context_input], outputs=output)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将 keras 顺序 API 转换为函数式 API

如何基于功能性API命名keras模型

Keras-将功能性API模型连接在一起

将层列表添加到keras模型计算图(功能性API)

在功能性API中简化Keras LSTM模型

功能性API中的Tensorflow Keras乙状结肠激活

keras功能性api和多个合并层

如何使用功能性API在Keras中调用自定义图层

Keras中的LSTM:顺序和功能性API的参数数量有所不同

如何将调度注入功能性 React 组件?

将功能模型转换为顺序 Keras

从顺序API转换为功能API模型

如何在Keras中使用功能性API在快捷连接中添加卷积层?

如何使用预训练模型的第一层来提取Keras模型中的特征(功能性API)

将命令式Java转换为功能性Java(游戏)

如何将命令性承诺转化为功能性任务?

Keras:功能性API输入层对于嵌入层应该是什么?

来自复杂模型的自定义预测(功能性API Keras)

Keras功能性API给出错误“预期的ndim = 3,找到的ndim = 4”

使用Keras中的功能性API向GRU模型添加掩膜层的正确方法?

Keras-从顺序API到功能API的转换

使用Keras 2.2.0将顺序模型转换为功能模型

如何将Keras顺序CNN的训练数据转换为正确的张量形状?

如何将功能转换为.prototype?

如何将类组件重构为功能性(必须重新渲染,未定义)

功能性Java BaconJS,如何将更多的值推送到事件流?

如何将API响应转换为图像?

(PHP)如何将特定信息从API转换为变量?

如何将数据框转换为字典调用api?