我有一个大小为 (100000, 100) 的嵌入矩阵。 我想计算矩阵中所有成对的余弦距离。我尝试过使用
sklearn.metrics.pairwise.cosine_distances
函数,但由于 RAM 内存达到极限而崩溃。
我也尝试像这样批量计算:
from sklearn.metrics.pairwise import cosine_distances
embeddings.astype(np.float32)
distances_matrix = []
batch_size = 1000
df_size = len(embeddings)
for i in tqdm(range(0, df_size, batch_size)):
end = min(i + batch_size, df_size)
batch = embeddings[i:end]
batch_distances = cosine_distances(batch, embeddings)
distances_matrix.append(batch_distances)
但是在大约 11 次迭代后它也会崩溃。
关于如何解决这个问题有什么建议吗? 谢谢。