gpt4 book ai didi

python - 如何计算 2-D 张量和 3-D 张量之间的欧氏距离?

转载 作者:太空宇宙 更新时间:2023-11-03 21:09:00 25 4
gpt4 key购买 nike

我有一个形状为 (?, L) 的二维张量 A,它指的是通过神经网络获得的特征(其中“?”是批量大小),以及形状为(NKL 的 3-D 张量 B )。显然,B中有N个形状为(K,L)的数组,称为<此处为strong>C。

现在,我如何计算之间的平均欧氏距离(A的一行和C的每一行的平均距离) A的每一行和每个C,而不迭代AC中的每一行,最后返回一个向量形状为 (?, N) ?

例如,当A形状为(1,L)时,可以得到如下结果:

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 = ([[1, 2, 3], [4, 5, 6]]) (这只是 A 的一个例子,其形状为 ( 2, 3)),如何得到形状为 [2, 2] 的上题结果?

最佳答案

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])
newA = tf.expand_dims(A, 0)
dist = tf.reduce_mean(tf.norm(B - newA, 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]]]}))

关于python - 如何计算 2-D 张量和 3-D 张量之间的欧氏距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55196194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com