使用tensordot获得意想不到的形状

Getting unexpected shape using tensordot

我正在尝试在两个形状张量之间做点积 (2000, 1, 64) (2000, 30, 64) 当我使用以下代码在这两者之间执行 tf.tensorbot 时

test = tf.tensordot(enc_op,tf.transpose(query_with_time_axis),axes=1)

我得到的输出形状为 (2000, 30, 1, 2000) 但我必须将形状设为 (2000, 30, 1)

我这样做是为了注意机制。 谁能帮我解决这个问题。

尝试使用,

a=tf.transpose(a,perm=[0,2,1])

然后,

test=tf.matmul(b,a)

其中 a 是第一个张量,b 是第二个