Tensorflow中的Tensor操作

时间:2019-03-28 09:02:20

标签: python tensorflow tensor

我有2个张量张量A和张量B,如图所示。我想从张量B中获取每个1x16向量,并沿着A的轴1和2与张量A的相应批次(轴0是每个张量中的批次尺寸)执行点积。如何在张量流中做到这一点。任何有关代码的帮助将不胜感激。谢谢

我尝试过einsum,但感到困惑。

预期输出形状应为(3,2,28,28)

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以这样做:

import tensorflow as tf

A = tf.placeholder(tf.float32, [3, 28, 28, 16])
B = tf.placeholder(tf.float32, [3, 2, 16])
A_exp = A[:, tf.newaxis]
B_exp = B[:, :, tf.newaxis, tf.newaxis]
C = tf.reduce_sum(A_exp * B_exp, axis=-1)
print(C)
# Tensor("Sum:0", shape=(3, 2, 28, 28), dtype=float32)