在不重新创建图形的情况下更改 dask 延迟输入
Changing dask delayed inputs without recreating graph
我对一些数据进行了一系列计算,我将这些数据建模为延迟了 dask 的图形,并且效果很好,但是创建图形本身比计算 运行.
我整天都在添加数据,所以希望能够在不重新创建图表的情况下更改输入,有没有办法做到这一点?
这是一个高级主题,所以我将只提供一个有点 hacky 的解决方案:
import dask
from dask.multiprocessing import get
@dask.delayed()
def myfunc(x):
return x+1
nested = 0
for x in range(1, 3):
nested = myfunc(x*nested, dask_key_name=f'{x}')
# 1*0 + 1 = 1 -> 2*1 + 1 = 3
print(nested.compute())
dag_modified = nested.dask.to_dict()
dag_modified['1'] = modified_dag['1'][0], 2
# 1*2 + 1 = 3 -> 2*3 + 1 = 7
print(get(dag_modified, '2'))
我对一些数据进行了一系列计算,我将这些数据建模为延迟了 dask 的图形,并且效果很好,但是创建图形本身比计算 运行.
我整天都在添加数据,所以希望能够在不重新创建图表的情况下更改输入,有没有办法做到这一点?
这是一个高级主题,所以我将只提供一个有点 hacky 的解决方案:
import dask
from dask.multiprocessing import get
@dask.delayed()
def myfunc(x):
return x+1
nested = 0
for x in range(1, 3):
nested = myfunc(x*nested, dask_key_name=f'{x}')
# 1*0 + 1 = 1 -> 2*1 + 1 = 3
print(nested.compute())
dag_modified = nested.dask.to_dict()
dag_modified['1'] = modified_dag['1'][0], 2
# 1*2 + 1 = 3 -> 2*3 + 1 = 7
print(get(dag_modified, '2'))