下面的代碼會導致我的系統在完成前耗盡內存。大塊稀疏矩陣上的餘弦相似性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