下面的代码会导致我的系统在完成前耗尽内存。大块稀疏矩阵上的余弦相似性numpy
您能否提出一个更有效的方法来计算大矩阵上的余弦相似度,比如下面的那个?
我想为我的原始矩阵(mat
)中的每个65000行计算相对于所有其他行的余弦相似度,以便结果为65000 x 65000矩阵,其中每个元素是余弦相似度原始矩阵中有两行。
import numpy as np
from scipy import sparse
from sklearn.metrics.pairwise import cosine_similarity
mat = np.random.rand(65000, 10)
sparse_mat = sparse.csr_matrix(mat)
similarities = cosine_similarity(sparse_mat)
运行最后一行后,我总是用完内存,程序冻结或崩溃,并伴随MemoryError。无论我是在我的8 GB本地RAM还是在64 GB EC2实例上运行,都会发生这种情况。
'sparse'都有自己的'random'功能,可以创建有大量的矩阵零。 – hpaulj