TypeError: __init__() got multiple values for argument 'axes'

TypeError: __init__() got multiple values for argument 'axes'

我想在下面的代码中使用注意力机制:

attention = Dot([decoder_outputs, encoder_outputs], axes=[2, 1])
attention = Activation('softmax')(attention)

context = Dot([attention, encoder_outputs], axes=[2,1])
decoder_combined_context = concatenate([context, decoder_outputs])

但是我有这个错误消息,我不知道如何解决它

Traceback (most recent call last):

    attention = Dot([decoder_outputs, encoder_outputs], axes=[2, 1])

TypeError: __init__() got multiple values for argument 'axes'

我正在使用 keras 2.3.1 版和 tensorflow 2.1.0 版

Dot的第一个参数是axes:

tf.keras.layers.Dot(axes, normalize=False, **kwargs)

因此您需要决定要为 axes 传递什么值:[decoder_outputs, encoder_outputs][2, 1]

你没有正确调用层,应该是这样的:

attention = Dot(axes=[2, 1])([decoder_outputs, encoder_outputs])

你对 Dot 的第二次调用有同样的问题,它遵循相同的模式