【发布时间】:2015-04-28 16:12:50
【问题描述】:
我有一个大小为 444075 x 444075 的 scipy 中的 CSR 稀疏矩阵。我希望将它乘以它的转置。但是,当我执行m * m.T 时,它会导致segmentation fault 11 错误。这是内存问题吗?如果是,有没有办法为程序分配更多内存?是否有一个聪明的解决方法/黑客使用来自 scipy 的其他例程的子例程来乘以不同的方式?
【问题讨论】:
-
如果是内存问题,它应该给出
MemoryError,而不是段错误。您可以发布一些重现错误的代码吗?你用的是什么版本的 scipy? -
代码就是
m*m.T,矩阵就是<444075x444075 sparse matrix of type '<type 'numpy.int64'>'with 3348026 stored elements in COOrdinate format>。我使用的是 15.1 版。 -
该错误是否仅发生在特定矩阵上,还是您可以使用随机矩阵重现它?
-
能否将您的 scipy 版本添加到问题中,好吗?我无法使用 scipy v0.13.3 或 v0.16.0.dev0+d139f48 为等效尺寸、密度、dtype 和格式的随机稀疏矩阵重现您的段错误。
-
上一条评论中提到,我的版本是15.1。我尝试使用 scipy 的 sparse.rand 创建一个随机稀疏矩阵,但也出现了段错误。
标签: python numpy segmentation-fault scipy sparse-matrix