【发布时间】:2017-05-09 18:44:14
【问题描述】:
我计算矩阵乘法如下:
import numpy as np
A=np.random.randn(1,3000,30000)
B=np.random.randn(50,1,30000)
C=A*B
C 的计算大约需要 10 分钟。我该如何改进?
In [4]: timeit A*B
1 loops, best of 3: 1min 59s per loop
【问题讨论】:
-
为什么要改进这个?它看起来已经优化了。
-
那是 2 分钟,而不是 10 分钟。
-
@Andy 可能是因为
timeit多次运行代码 -
你有足够的内存来完成计算吗?结果是 (50 * 3000 * 30000 * 64 位) 36 GB 大小,在我的机器上它的交换使它爬行停止
-
避免交换的最安全方法是使用(购买)更多 RAM 或使用更小的
dtype。
标签: python performance numpy multiprocessing