gpt4 book ai didi

python - 为什么我使用 scipy 将两个 CSR 矩阵相乘时会消耗这么多内存?

转载 作者:行者123 更新时间:2023-11-28 18:33:03 26 4
gpt4 key购买 nike

我使用 Scipy CSR representation一个 800,000x350,000 的矩阵,假设它是 M。我想计算点积 M * M[0:x].T。现在,根据 x 的值,内存消耗会增加。 x=1 并不明显,但如果 x=2000,则乘法过程需要大约 8 GB 的 RAM。

我想知道当我计算这个产品时会发生什么,以及为什么与存储稀疏矩阵(大约 30Mb)相比它需要这么多内存。矩阵是否为乘法展开?

最佳答案

通过调查随着时间的推移和每次操作后的结果和内存消耗,我发现原因是稀疏矩阵乘法的结果。 M 中确实有很多零值。但是 M*M.T 的结果是一个仅包含 50% 零的矩阵。因此结果消耗了大量内存。

示例:假设 M 的每个行向量在同一索引处都有一个非零字段,但除此之外是稀疏。那么 M*M.T 的结果将根本不是稀疏(没有零值)。

尽管如此,还是感谢您的帮助。

关于python - 为什么我使用 scipy 将两个 CSR 矩阵相乘时会消耗这么多内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35086431/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com