1

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

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

但是第二个命令即使将近 1 个小时也没有给出任何输出。怎么了?有更快的技术吗?创建 X 和 Y 时是否存在“块”问题?

4

1 回答 1

1

考虑.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 数组。

这是文档中的相应部分。

于 2016-03-25T14:21:40.150 回答