Я изо всех сил пытался найти способ получить этот калькулятор, который работает для рабочего процесса dask.
У меня есть код, который использует функцию np.random.mulivariate_normal, и хотя многие из этих типов доступны для нас в массиве dask, похоже, это не так. Оооо .... Я попытался создать свой собственный на основе примера, приведенного в документации DASK .
Вот моя попытка, которая дает ошибки, которые мне трудно понять. Я также предоставил случайные входные переменные, чтобы их было легко скопировать:
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))
Есть какие-нибудь предложения или я так далеко от цели, что мне следует отказаться от всякой надежды? Спасибо!