使用Tensorflow计算余弦距离
tensorflow
一个面向所有人的开源机器学习框架
项目地址:https://gitcode.com/gh_mirrors/te/tensorflow
免费下载资源
·
余弦相似度,又称为余弦相似性,是通过计算两个向量的夹角余弦值来评估他们的相似度,在计算机视觉中,余弦距离一般用于度量两个特征向量之间的相似度,其计算公式如下:
当两个特征向量的方向在特征空间中相同,其夹角为0,余弦值为1,此时两个特征向量完全相似。故,余弦距离越大,两特征向量越相似,范围在[-1,1]。
在tensorflow中如何计算两个特征向量集合之间两两点之间的余弦距离呢?
假设,两特征向量集合X1(k,n),X2(m,n),计算代码如下:
import tensorflow as tf
def get_cos_distance(X1, X2):
# calculate cos distance between two sets
# more similar more big
(k,n) = X1.shape
(m,n) = X2.shape
# 求模
X1_norm = tf.sqrt(tf.reduce_sum(tf.square(X1), axis=1))
X2_norm = tf.sqrt(tf.reduce_sum(tf.square(X2), axis=1))
# 内积
X1_X2 = tf.matmul(X1, tf.transpose(X2))
X1_X2_norm = tf.matmul(tf.reshape(X1_norm,[k,1]),tf.reshape(X2_norm,[1,m]))
# 计算余弦距离
cos = X1_X2/X1_X2_norm
return cos
GitHub 加速计划 / te / tensorflow
184.55 K
74.12 K
下载
一个面向所有人的开源机器学习框架
最近提交(Master分支:2 个月前 )
a49e66f2
PiperOrigin-RevId: 663726708
2 个月前
91dac11a
This test overrides disabled_backends, dropping the default
value in the process.
PiperOrigin-RevId: 663711155
2 个月前
更多推荐
已为社区贡献2条内容
所有评论(0)