假设我在图表中有张量x[i,j,k]
和y[p,q]
。指定张量z[i,j,k,p,q] = x[i,j,k]y[p,q]
的正确方法是什么?这是x
和y
的{{3}}的坐标表示。我可以使用tf.expand_dims
,tf.mult
和tf.tile
的组合完成工作,但我觉得应该有更好的方法...
答案 0 :(得分:3)
我认为你可以在没有使用广播的磁贴操作的情况下逃脱。
x_reshaped = tf.reshape(x, (i, j, k, 1, 1))
y_reshaped = tf.reshape(y, (1, 1, 1, p, q))
z = x_reshaped * y_reshaped
当尺寸大小为1且与其他张量尺寸的尺寸不匹配时,它将被沿着该尺寸自动复制/广播并执行产品。瓷砖通常是不必要的。我实际上并不认为我曾经在tensorflow中使用过tile。在这里我也使用了reshape而不是expand_dims,但结果是相同的。