我正在努力实现以下目标:
输入:
返回:张量,[x1*t1, x2*t2, ... xn*tn]
。
我知道这可以通过tf.stack([x[i]*T[i] for i in range(n)])
实现,想知道是否有任何没有迭代的优雅方法。
答案 0 :(得分:1)
只需将两个向量带到相同的维度:
T = tf.constant([[[[1,1]]],[[[2,2]]]])
x = tf.constant([3,4])
xr = tf.reshape(x, [-1,1,1,1])
res = T*xr
正在运行res
将打印:
[[[[3, 3]]],[[[8, 8]]]]
这正是你要求的。
一旦两个张量具有相同的维度,tf将负责广播op(正确执行广播需要重新整形)