首页 文章

如何从张量流中的向量构造成对差的平方?

提问于
浏览
1

我有一个在TensorFlow中具有N维的1D向量,

如何构造成对平方差的和?

示例

Input Vector
[1,2,3]
Output 6
Computed As

(1-2)^2+(1-3)^2+(2-3)^2.

如果我输入为N-dim向量l,则输出应为sigma_ {i,j}((l_i-l_j)^ 2) .

Added question :如果我有一个2d矩阵,并希望对矩阵的每一行执行相同的处理,然后平均所有行的结果,我该怎么办?非常感谢!

2 回答

  • 0

    对于成对差异,减去 inputinput 的转置并仅采用上三角形部分,如:

    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
    
  • 2

    使用 tf.subtract ?然后是np.sum . 勒梅知道这对你们有什么影响 .

相关问题