gpt4 book ai didi

python - Theano 中的余弦相似度

转载 作者:行者123 更新时间:2023-11-28 22:38:42 26 4
gpt4 key购买 nike

使用 numpy 和 theano 计算余弦相似度的最简单方法是什么?以 numpy 数组形式给出的向量。

我曾尝试仅使用 numpy 来计算余弦相似度矩阵,但它的运行速度慢得令人发狂。然而,我对 theano 完全陌生,但假设这个库可以帮助我构建我的余弦相似度矩阵。

好吧,帮帮忙! :)

最佳答案

这里有一篇关于 Python 中余弦相似度的文章:Cosine Similarity between 2 Number Lists .

我重写了 this answer在 Numpy 和 Theano 中:

def cos_sim_numpy(v1, v2):
numerator = sum(v1*v2)
denominator = math.sqrt(sum(v1**2)*sum(v2**2))
return numerator/denominator

def compile_cos_sim_theano():
v1 = theano.tensor.vector(dtype=theano.config.floatX)
v2 = theano.tensor.vector(dtype=theano.config.floatX)
numerator = theano.tensor.sum(v1*v2)
denominator = theano.tensor.sqrt(theano.tensor.sum(v1**2)*theano.tensor.sum(v2**2))
return theano.function([v1, v2], numerator/denominator)

cos_sim_theano_fn = compile_cos_sim_theano()

v1 = numpy.asarray([3,45,7,2], dtype=np.float32)
v2 = numpy.asarray([2,54,13,15], dtype=np.float32)

print cos_sim_theano_fn(v1, v2), cos_sim_numpy(v1, v2)

Output: 0.972284251712 0.972284251712

关于python - Theano 中的余弦相似度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35409545/

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