在TensorFlow中计算张量中所有向量之间的成对欧几里得距离的有效方法

xro7

feature_map一个具有形状的张量:b,h,w,c = feature_map.shape

为了计算通道(c)轴上所有向量之间的成对欧几里得距离,我使用以下代码:

feature_map = tf.reshape(feature_map,(b,-1,c))
norms = []
for i in range(h*w):
    norm = tf.norm(feature_map-feature_map[:,i:i+1,:],ord=2,axis=-1)
    norms.append(sorted_tensor)
norms = tf.stack(norms,axis=1)

此过程非常慢。为了避免这种情况,for-loop我尝试使用tf.tile复制张量,然后应用该norm函数,但是由于生成的张量非常大,导致内存错误。

有没有更有效的方法来做到这一点?

xro7

我从这里开始使用欧几里得距离矩阵技巧

numpy适应是以下情况:

feature_map = tf.reshape(feature_map,(b,-1,c))         
G = np.einsum('bik, bjk->bij', feature_map, feature_map)
D = G.diagonal(axis1=1,axis2=2).reshape(b,-1,1)+ np.transpose(G.diagonal(axis1=1,axis2=2).reshape(b,-1,1),axes=(0,2,1)) - 2*G
norms = np.sqrt(D)

以及相应的tensorflow改编:

feature_map = tf.reshape(feature_map,(b,-1,c))     
G = tf.einsum('bik, bjk->bij', feature_map, feature_map)
D = tf.reshape(tf.linalg.diag_part(G),(b,-1,1))+ tf.transpose(tf.reshape(tf.linalg.diag_part(G),(b,-1,1)),perm=(0,2,1)) - 2*G
norms = tf.sqrt(D)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

计算数据框所有行之间的成对欧几里得距离

来自分类Dev

在python中计算距值的距离的有效方法

来自分类Dev

计算矩阵A和B中所有行之间的欧几里得距离

来自分类Dev

如何在没有for循环的情况下有效计算欧几里得距离矩阵?

来自分类Dev

计算python中成对向量概率分布的有效方法

来自分类Dev

使用Numpy有效地计算欧几里得距离矩阵

来自分类Dev

如何有效地计算多个时间序列的欧几里得距离矩阵

来自分类Dev

使用Numpy有效地计算欧几里得距离矩阵

来自分类Dev

在Python中有效检查大量对象的欧几里得距离

来自分类Dev

如何计算向量之间的欧几里得距离?

来自分类Dev

计算2个整数坐标点之间的距离的最有效方法?

来自分类Dev

在MATLAB中计算海量数据均值的有效方法

来自分类Dev

在DataFrame中计算增量的有效方法?

来自分类Dev

在C / C ++行中计算整数的有效方法

来自分类Dev

创建字符串数组/向量并找出其中所有字符串长度的有效方法

来自分类Dev

计算所有行之间差异的最有效方法

来自分类Dev

聚类计算的有效距离

来自分类Dev

如何有效地更改向量中所有对象的成员数据?

来自分类Dev

计算两个整数矩阵/数据帧的所有行之间的成对汉明距离

来自分类Dev

Matlab计算数组中所有(u,v)向量的最近邻居距离

来自分类Dev

Matlab计算数组中所有(u,v)向量的最近邻居距离

来自分类Dev

2个向量中所有点之间的欧式距离

来自分类Dev

2个向量中所有点之间的欧式距离

来自分类Dev

获取向量之间匹配位置的有效方法

来自分类Dev

如何计算R中所有成对组合的均值

来自分类Dev

计算列表中所有数据框之间的 Hausdorff 距离

来自分类Dev

如何在Matlab中计算3d矩阵中所有点到平面的距离?

来自分类Dev

从火炬中的张量中选择性替换向量的有效方法

来自分类Dev

计算基数R?中成对偏相关的最有效方法。

Related 相关文章

  1. 1

    计算数据框所有行之间的成对欧几里得距离

  2. 2

    在python中计算距值的距离的有效方法

  3. 3

    计算矩阵A和B中所有行之间的欧几里得距离

  4. 4

    如何在没有for循环的情况下有效计算欧几里得距离矩阵?

  5. 5

    计算python中成对向量概率分布的有效方法

  6. 6

    使用Numpy有效地计算欧几里得距离矩阵

  7. 7

    如何有效地计算多个时间序列的欧几里得距离矩阵

  8. 8

    使用Numpy有效地计算欧几里得距离矩阵

  9. 9

    在Python中有效检查大量对象的欧几里得距离

  10. 10

    如何计算向量之间的欧几里得距离?

  11. 11

    计算2个整数坐标点之间的距离的最有效方法?

  12. 12

    在MATLAB中计算海量数据均值的有效方法

  13. 13

    在DataFrame中计算增量的有效方法?

  14. 14

    在C / C ++行中计算整数的有效方法

  15. 15

    创建字符串数组/向量并找出其中所有字符串长度的有效方法

  16. 16

    计算所有行之间差异的最有效方法

  17. 17

    聚类计算的有效距离

  18. 18

    如何有效地更改向量中所有对象的成员数据?

  19. 19

    计算两个整数矩阵/数据帧的所有行之间的成对汉明距离

  20. 20

    Matlab计算数组中所有(u,v)向量的最近邻居距离

  21. 21

    Matlab计算数组中所有(u,v)向量的最近邻居距离

  22. 22

    2个向量中所有点之间的欧式距离

  23. 23

    2个向量中所有点之间的欧式距离

  24. 24

    获取向量之间匹配位置的有效方法

  25. 25

    如何计算R中所有成对组合的均值

  26. 26

    计算列表中所有数据框之间的 Hausdorff 距离

  27. 27

    如何在Matlab中计算3d矩阵中所有点到平面的距离?

  28. 28

    从火炬中的张量中选择性替换向量的有效方法

  29. 29

    计算基数R?中成对偏相关的最有效方法。

热门标签

归档