2016-06-10 46 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會在第三維中廣播乘法的第二個參數。