我的keras版本为Keras   2.1.5

今天在用keras multiply的时候发现了上述的错误:

Traceback (most recent call last):
File "models.py", line 186, in <module>
include_tweet=configs['include_tweet'])
File "models.py", line 59, in NIC
attention_mul=Multiply([image_embedding,attention_probs])
TypeError: __init__() takes 1 positional argument but 2 were given

正确的写法是:

from keras.layers import multiply

代码:

attention_probs=Dense(embedding_size ,activation="softmax")(image_embedding)

然后注意一下维度一致就可以了。

参考文献

[1].Keras Multiply() layer in functional API. ​​https://stackoverflow.com/questions/48309322/keras-multiply-layer-in-functional-api​