dask 数组梯度乘法

dask array gradient multiplication

我正在尝试使用 dask 数组对非常大的数据集进行图像处理。其中一部分是获取梯度,进行一些处理并将它们相互相乘。但是,这会导致错误。

没有处理步骤的最小示例:

import dask.array as da
data = da.random.random((100, 100), chunks=(10, 10))
grad0, grad1 = da.gradient(data, axis=(0, 1))
(grad0 * grad1).compute()

给出错误:ValueError: operands could not be broadcast together with shapes (8,12) (10,10)

这应该有效吗?

我正在使用 dask 0.18.0(PyPI 上的最新版本)。

该错误是由于 dask.array 中的错误引起的,并已在开发分支中修复:https://github.com/dask/dask/pull/3647