如何减少Python数据类型的大小

问题描述 投票:0回答:1

我正在使用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 数据类型更改为更短的类型?

python scikit-learn cosine-similarity
1个回答
0
投票

您遇到了内存问题,因为

cosine_similarity
默认情况下使用
float64
进行计算,这需要大量内存用于大型矩阵。

不幸的是,您无法在

cosine_similarity
内直接更改数据类型。不过,这里有一个解决方法:

  1. 降低

    tfidf_matrix
    的精度: 在计算余弦相似度之前,请将
    tfidf_matrix
    转换为
    float32

    tfidf_matrix = tfidf_matrix.astype(np.float32) 
    
  2. 使用

    float32
    进行计算: 这将显着减少内存使用量,同时仍提供合理的精度。

© www.soinside.com 2019 - 2024. All rights reserved.