Я пытаюсь понять, что Dask откладывается более глубоко, поэтому я решил поработать с примерами здесь .Я изменил часть кода, чтобы отразить, как я хочу использовать Dask (см. Ниже).Но результаты отличаются от того, что я ожидал, т.е.кортеж против списка.Когда я пытаюсь применить '.visualize ()', чтобы посмотреть, как выглядит график выполнения, я ничего не получаю.
Я работал со всеми примерами в 'delayed.ipynb', и все они работают должным образом, включая все визуализации.,Затем я изменил цикл for для одного примера:
for i in range(256):
x = inc(i)
y = dec(x)
z = add(x, y)
zs.append(z)
для вызова функции, использующей понимание списка.Результатом является изменение исходного рабочего примера.
%%time
import time
import random
from dask import delayed, compute, visualize
zs = []
@delayed
def inc(x):
time.sleep(random.random())
return x + 1
@delayed
def dec(x):
time.sleep(random.random())
return x - 1
@delayed
def add(x, y):
time.sleep(random.random())
return x + y
def myloop(x):
x.append([add(inc(i), dec(inc(i))) for i in range(8)])
return x
result = myloop(zs)
final = compute(*result)
print(final)
Я попытался распечатать «результат» (вызов функции), который предоставляет ожидаемый список вызовов с задержкой, но когда я печатаю результаты «вычисления»Я неожиданно получаю желаемый список как часть кортежа.Почему я не получаю просто список?
Когда я пытаюсь «визуализировать» график выполнения, я вообще ничего не получаю.Я ожидал увидеть столько узлов, сколько есть в сгенерированном списке.
Я не думал, что внес какие-либо существенные изменения в пример, так что я не понимаю?