2017-06-19 8 views
0

私は基本的にn次元のユークリッド空間のm点を表すn * mのテンソルを持っています。私は、連続した各点の間の対のユークリッド距離を計算したかったのです。Tensorflow - 行列内の点のユークリッド距離

私の列ベクトルがポイント、B、C、などであれば、私はEUC(a、b)は、EUC(B、C)を計算したい、である、など

結果だろうm対1の長さの1Dテンソルであり、それぞれ対のユークリッド距離である。

TensorFlowでこれを実行できるのは誰ですか?

答えて

0

私はうまくいくものを見つけました。しかし、誰かがより良い解決策を持っているかどうかを教えてください。

def pairwise_euclidean_distance (input_layer): 
    original_size = input_layer.get_shape().as_list() 

    subtrahend = tf.pad(input_layer, [[0, 0], [1, 0], [0, 0], [0, 0]]) 
    subtrahend = tf.slice(subtrahend, [0, 0, 0, 0], original_size) 

    distance = tf.sqrt(tf.reduce_sum(tf.square(tf.subtract(input_layer, subtrahend)), axis=[2,3])) 

    return distance 
関連する問題