【问题标题】:Tensorflow1,How to calculate tensor's cosin-similarity to form a similarity matrix?Tensorflow 1、如何计算张量余弦相似度形成相似度矩阵?
【发布时间】:2020-11-26 13:02:49
【问题描述】:

首先,我有一个这样的张量,

a = [[A B],[C D]]

我想计算彼此之间的余弦相似度,我的意思是计算 cos([A B],[A B]),cos([A B],[C D]),cos([C D],[A B] ),cos([C D],[C D]) 形成这样的相似度矩阵,

[[cos([A B],[A B]),cos([A B],[C D])],
 [cos([C D],[A B]),cos([C D],[C D])]]

我想用follow code来获取相似度矩阵,没用。

`tf.losses.cosine_distance(tf.expand_dims(a, 0),
 tf.expand_dims(a, 1), axis = 2)`

如何在 TF1 中使用高效矢量化来完成这项工作?谢谢您的回复。

【问题讨论】:

    标签: python python-3.x tensorflow cosine-similarity distance-matrix


    【解决方案1】:

    这可能会有所帮助,

    import tensorflow as tf
    a = [1.,2.,3.]
    b = [1.,2.,3.]
    #cosine_similarity = tf.losses.cosine_distance(tf.nn.l2_normalize(a, 0), tf.nn.l2_normalize(b, 0), dim=0)  ##normalize_input
    cosine_similarity = tf.losses.cosine_distance(a, b, dim=0)
    print(tf.Session().run(cosine_similarity))
    

    输出

    -13.0
    

    【讨论】:

      猜你喜欢
      • 2019-04-22
      • 2014-03-25
      • 2016-10-22
      • 2022-07-07
      • 1970-01-01
      • 1970-01-01
      • 2015-05-24
      • 2015-07-17
      相关资源
      最近更新 更多