【发布时间】:2026-02-03 21:35:01
【问题描述】:
我一直在努力寻找一种方法来获得适用于 dask 工作流程的计算。
我有使用 np.random.mulivariate_normal 函数的代码,虽然其中许多类型在 dask 数组上可供我们使用,但似乎不是这种类型。 Sooo....我试图根据 dask documentation 中提供的示例创建自己的。
这是我的尝试,它给出了我难以理解的错误。我还提供了随机输入变量以便于复制:
import numpy as np
from dask.distributed import Client
import dask.array as da
def mvn(mu, sigma, n, blocksize):
chunks = ((blocksize,) * (n // blocksize),
(blocksize,) * (n // blocksize))
name = 'mvn' # unique identifier
dsk = {(name, i, j): (np.random.multivariate_normal(mu,sigma, blocksize))
if i == j else
(np.zeros, (blocksize, blocksize))
for i in range(n // blocksize)
for j in range(n // blocksize)}
dtype = np.random.multivariate_normal(0).dtype # take dtype default from numpy
return da.Array(dsk, name, chunks, dtype)
n = 10000
A = da.random.normal(0, 1, size=(n,n), chunks=(1000, 1000))
sigma = da.dot(A,A.transpose())
mu = 4.0*da.ones(n, chunks = 1000)
R = da.numpy.random.mvn(mu, sigma, n, chunks=(100))
有什么建议还是我离题太远以至于我应该放弃所有希望?谢谢!
【问题讨论】: