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 数组。
我正在尝试计算非常大的 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 数组。