2016-06-10 45 views
0

让张T tensorflow乘法已经塑造[B, N, N, 6],我想通过[b, N, N, 5]元素方面的每一个b in range(B)乘矩阵[b, N, N, 0:3]。请注意,[N, N, 4]不应更改。用tensorflow做这件事的最好方法是什么?跨维度

我尝试:

result = tf.empty([B, N, N, 5]) for b in range(B): for i in range(4) result[b, :, :, i] = tf.mul(T[b, :, :, i], T[b, :, :, 5]) result[b, :, :, 4] = T[b, :, :, 4]

回答

1

在TensorFlow,它不是通常可以通过分配给片建立一个张量的值。编程模型往往比命令更具功能性。实现你的计算的一种方法如下:

result = tf.concat(3, [tf.mul(T[:, :, :, 0:4], T[:, :, :, 5:6]), T[:, :, :, 4:5]]) 

请注意,您不需要多个乘法,因为(i)原计算是已经逐元素的零维(for b in range(B)),及(ii )TensorFlow会在第三维中广播乘法的第二个参数。