python - 为了在 python 中使用 keras 和 numpy 创建 word2vec 模型,我怎样才能得到这个输出?
问题描述
您好,我很难理解这一点,这是交易,我试图获得与给我项目的人相同的输出,但似乎我在这个过程中做错了什么,这里是给定的输出我想要 的输出和我有的输出:我有的输出
这是我的代码的样子:
#the keras model/graph would look something like this:
from keras import layers, optimizers, Model
# embedding ,
embedding = layers.Embedding(Vt, vector_dim, input_length=1, name='embedding')
# entrée deux entier (couple de morceaux)
input_target = Input((1,), dtype='int32')
input_context = Input((1,), dtype='int32')
print(input_target)
print(input_context)
target = embedding(input_target)
context = embedding(input_context)
#target = layers.Reshape((vector_dim,))(target)
#context = layers.Reshape((vector_dim,))(context)
print("----------")
print(target)
print(context)
dot_product = layers.dot([target, context], axes=1)
dot_product = Flatten()(dot_product)
print(dot_product)
#dot_product = layers.Reshape((1,))(dot_product)
#dot_product = layers.Reshape((vector_dim,))(dot_product)
output = Dense(1, activation='sigmoid',name="classif")(dot_product)
# # definition du modèle
Track2Vec = Model(inputs=[input_target, input_context], outputs=output)
Track2Vec.compile(loss='binary_crossentropy', optimizer='adam',metrics=["accuracy"])
提前感谢您试图找出我工作中的问题!
解决方案
问题出在 layer.dot 中,您需要在其中执行点积以给出 (1,1) 而不是 (30,30)。
尝试为该层交换您的输入。
''' dot_product = layers.dot([context, target], axes=1) ''' 这应该可以。
推荐阅读
- javascript - 在使用 javascript 函数过滤掉某些行后,如何将 CSS 应用于奇数/偶数可见行?(错误地标记为重复)
- javascript - 当我们在javascript中将字符串变量初始化为null或空字符串时有什么区别?哪个是首选
- c++ - 由于 X509 重新定义问题,编译 WebRTC 和 boost::uuid 时出现问题。我应该在哪里创建问题?
- google-sheets - 如果另一个单元格的值为零,是否有一个公式可以用来返回 0 值?
- r - 使用数据框中的因子名称和级别顺序的变量更改 R 中的因子级别
- scala - Scala 中 TypedDataset 和类型边界的隐式编码器
- selenium - 获取以下代码的“元素不可交互”
- python - 在 TensorFlow 中沿一个轴应用排列
- angular - 为什么 ng serve 会导致 JS 文件出现 404 错误?
- android - 从相机意图中获取像素的颜色