小编dtr*_*iak的帖子

当Numpy没有进行点积计算时,为什么Dask数组会抛出内存错误?

我正在努力比较不同数据大小的Dask和Numpy的计算速度.我知道Dask可以并行执行数据计算,并将数据拆分成块,这样数据大小就可以大于RAM.当使用下面的Dask代码时,我得到一个内存错误(显示在底部),方形数组大小为42000.

import dask as da
import time
size = 42000  
y = da.random.random(size = (size,size), chunks = (size/8,size/8))
start = time.time()
y = y.dot(y*2)      #arbitrary dot product calculation
y.compute()
end = time.time()
print(str(end-start) + " seconds")
Run Code Online (Sandbox Code Playgroud)

但是,在使用Numpy运行类似代码时,我不会收到任何错误.

import numpy as np
import time
size = 42000
x = np.random.random(size = (size,size))
start = time.time()
x = x.dot(x*2)      #arbitrary dot product calculation
end = time.time()
print(str(end-start) + " seconds")
Run Code Online (Sandbox Code Playgroud)

因此,我不明白为什么当Numpy不特别因为Dask应该能够对数据进行分区时Dask会抛出内存错误.这有什么解释/解决方案吗?

编辑:我只有点产品的这个问题.我已经用平均值测试没有任何问题.

MemoryError                               Traceback (most recent call last)
<ipython-input-3-a3af599b673a> in <module>()
      3 …
Run Code Online (Sandbox Code Playgroud)

python numpy dot-product dask

5
推荐指数
1
解决办法
514
查看次数

标签 统计

dask ×1

dot-product ×1

numpy ×1

python ×1