Получение неожиданной формы с помощью tensordot - PullRequest
0 голосов
/ 20 июня 2020

Я пытаюсь выполнить скалярное произведение между двумя тензорами формы (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)

Я делаю это для механизма внимания. Может ли кто-нибудь помочь мне с этим.

1 Ответ

1 голос
/ 20 июня 2020

попробуйте использовать,

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

, а затем

test=tf.matmul(b,a)

, где a - первый тензор, а b - второй

...