【发布时间】:2012-05-27 00:14:45
【问题描述】:
我试图在两个巨大的矩阵 (10*25,000,000) 之间产生一个通常的矩阵乘法。 当我这样做时,我的记忆就会耗尽。我如何使用 numpy 的 memmap 来处理这个问题? 这甚至是个好主意吗?我并不担心操作的速度,我只想要结果,即使这意味着等待一段时间。提前谢谢你!
8 gbs 内存,I7-2617M 1.5 1.5 ghz,Windows7 64 位。我使用 64 位版本的一切:python(2.7)、numpy、scipy。
编辑1:
也许 h5py 是更好的选择?
【问题讨论】:
-
您谈论的是“通常的矩阵乘法”,而不是我想的元素乘法。元素的类型是什么?整数8?浮动64?结果矩阵应该是 25,000,000*25,000,000 还是 10*10 ?如果是 10*10 你应该没问题。 10*25,000,000*8bytes = 2GBytes。
-
(10;25,000,000)*(25,000,000;10) 有什么想法吗?这些软件包是否有助于克服这一点,还是我的推理方向错误。浮动64。我也许可以使用 float32 但它仍然无法正常工作。 @FélixCantournet
标签: python numpy memory-management matrix-multiplication large-data