我有一个在TensorFlow中具有N维的1D向量,
如何构造成对平方差的和?
Input Vector[1,2,3]Output 6Computed As
[1,2,3]
6
(1-2)^2+(1-3)^2+(2-3)^2.
如果我输入为N-dim向量l,则输出应为sigma_ {i,j}((l_i-l_j)^ 2) .
Added question :如果我有一个2d矩阵,并希望对矩阵的每一行执行相同的处理,然后平均所有行的结果,我该怎么办?非常感谢!
对于成对差异,减去 input 和 input 的转置并仅采用上三角形部分,如:
input
pair_diff = tf.matrix_band_part(a[...,None] - tf.transpose(a[...,None]), 0, -1)
然后你可以平方并总结差异 .
码:
a = tf.constant([1,2,3]) pair_diff = tf.matrix_band_part(a[...,None] - tf.transpose(a[...,None]), 0, -1) output = tf.reduce_sum(tf.square(pair_diff)) with tf.Session() as sess: print(sess.run(output)) # 6
使用 tf.subtract ?然后是np.sum . 勒梅知道这对你们有什么影响 .
tf.subtract
2 回答
对于成对差异,减去
input
和input
的转置并仅采用上三角形部分,如:然后你可以平方并总结差异 .
码:
使用
tf.subtract
?然后是np.sum . 勒梅知道这对你们有什么影响 .