提问者:小点点

将两个具有不同形状的3d张量相乘(Tensorflow)


在 TensorFlow 中,如果我有两个三维张量,一个维度为 (100, 9, 135),另一个维度为 (100, 29, 135):

x1:张量(形状=(100,9,135),dtype=float64)

x2: 张量(形状=(100, 29, 135), dtype=float64)

我需要将这两个张量相乘,所以当我使用“tf.multiply”时,我得到了如下错误:

z = tf.multiply(x1,x2)

print("z:", z)

ValueError:维度必须相等,但为 9 和 29,输入形状为:[100,9,135]、[100,29,135]。

如何在TensorFlow中做到这一点?提前感谢。


共1个答案

匿名用户

我不确定你想要什么输出形状,但你可以尝试使用tf.einsum进行矩阵乘法:

import tensorflow as tf

t1 = tf.random.normal((2, 9, 35))
t2 = tf.random.normal((2, 29, 35))

e = tf.einsum('bij,bkj->bik', t1, t2)
# or e =  tf.einsum('...ij,...kj->...ik', t1, t2)

print(e)

查看文档了解更多选项。