如何计算向量与3-D张量之间的欧式距离?

时间:2019-03-15 09:38:16

标签: python tensorflow

我有一个张量 A ,大​​小为(1, L ),还有一个3D张量 B ,大​​小为( N K L )。显然,在 B 中有大小为( K L )的 N 个数组,称为< strong> C 在这里。

现在,如何计算之间的平均欧几里德距离 A C 的每一行的平均距离) A 和每个 C ,而不会重复 C 中的每一行,最后返回一个大小为(1, N )?

1 个答案:

答案 0 :(得分:1)

您可以使用tf.normtf.reduce_mean来做到这一点:

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>

<div id="root"></div>

编辑:import tensorflow as tf with tf.Graph().as_default(), tf.Session() as sess: a = tf.placeholder(tf.float32, [1, None]) b = tf.placeholder(tf.float32, [None, None, None]) dist = tf.reduce_mean(tf.norm(b - a, axis=2), axis=1) print(sess.run(dist, feed_dict={a: [[1, 2, 3]], b: [[[ 4, 5, 6], [ 7, 8, 9]], [[10, 11, 12], [13, 14, 15]]]})) # [ 7.7942286 18.186533 ] 中有多个向量的情况的变体:

a