让张量 T
具有形状 [B, N, N, 6]
,我想为每个 b in range(B)
乘以 [b, N, N, 0:3]
元素 [b, N, N, 5]
元素 . 请注意,不应更改 [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中,通常不可能通过分配切片来构建张量值 . 编程模型往往比命令式更具功能性 . 实现计算的一种方法如下:
请注意,您不需要多次乘法,因为(i)原始计算在第0维(
for b in range(B)
)已经是元素方式,而(ii)TensorFlow将第二个参数广播到第3维中的乘法 .