我正在使用Python来做cosine_similarity
similarity_matrix = cosine_similarity(tfidf_matrix)
问题是我收到此错误
MemoryError: Unable to allocate 44.8 GiB for an array with shape (6011226750,) and data type float64
我认为我不需要 float64 对于此操作,小数点后的 2 位数字应该足够了
有没有办法可以将 cosine_similarity 数据类型更改为更短的类型?
您遇到了内存问题,因为
cosine_similarity
默认情况下使用 float64
进行计算,这需要大量内存用于大型矩阵。
不幸的是,您无法在
cosine_similarity
内直接更改数据类型。不过,这里有一个解决方法:
降低
tfidf_matrix
的精度: 在计算余弦相似度之前,请将 tfidf_matrix
转换为 float32
:
tfidf_matrix = tfidf_matrix.astype(np.float32)
使用
float32
进行计算: 这将显着减少内存使用量,同时仍提供合理的精度。