Python : dask 数组的点积

Python : Dot product of dask array

我正在尝试计算非常大的 2 个 dask 数组 X (35000 x 7500) 和 Y(7500 x 10) 的点积。由于点积也将非常大,我将其存储在 hdf5

f = h5py.File('output.hdf5')
f['output'] = X.dot(Y)

但是第二个命令没有给出任何输出,即使它已经将近 1 小时了。怎么了?有更快的技术吗?创建X和Y时是否有"chunks"的问题?

考虑 .to_hdf5 方法或 da.store 函数。

>>> X.dot(Y).to_hdf5('output.hdf5', 'output')

>>> output = f.create_dataset('/output', X.dot(Y).shape, X.dot(Y).dtype)
>>> da.store(X.dot(Y), output)

to_hdf5 方法对您来说可能更简单。 da.store 方法也适用于其他格式。

H5Py 中的 __setitem__ 函数(当您说 f['output'] = ... 时使用的是硬编码以使用 NumPy 数组。

Here is the appropriate section in the documentation.