在 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中做到这一点?提前感谢。
我不确定你想要什么输出形状,但你可以尝试使用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)
查看文档了解更多选项。