具有不同等级的张量的批量tf.matmul

时间:2017-12-12 10:16:31

标签: python tensorflow linear-algebra

给定形状张量(A, B, C, D, E)和张量形状(A, B, E),我想通过自动广播第二张量进行批量乘法,这样:

    In [1]: X = tf.placeholder(dtype=tf.float32, shape=[A, B, C, D, E])
    In [2]: Y = tf.placeholder(dtype=tf.float32, shape=[A, B, E])
    In [3]: # DO SOMETHING LIKE tf.matmul(X, Y)
    Out[3]: <tf.Tensor 'MatMul_1:0' shape=(A, B, C, D) dtype=float64>

甚至可能吗?

提前致谢

1 个答案:

答案 0 :(得分:-1)

广播主要支持那些使用逐元素计算的操作。 tf.matmul不是按元素操作,但tf.multiply是基于元素的。

此外,即使在支持广播的那些操作中,Tensorflow也可能会或可能不会为更高阶的张量进行自动广播。在这些情况下,您将手动执行此操作。

我写了another answer,为更高阶的张量进行自动广播。