可视化 DASK 任务图

3

我正在按照这篇教程所述的步骤操作,创建了以下的这个图:

from dask.threaded import get

from operator import add

dsk = {
   'x': 1,
   'y': 2,
   'z': (add, 'x', 'y'),
   'w': (sum, ['x', 'y', 'z'])
}

get(dsk, "w")

这个可以实现,我得到了期望的输出。我如何可视化计算图?可视化方法需要一个DASK对象,而我只有一个字典。

提前感谢!

2个回答

2
dask.visualize适用于Dask Collections——API文档中提到args需要是“dask object”,这意味着是Dask Collection(我已经开了这个问题来改进文档!)。
因此,如果您将任务图dsk包装在一个Collection中,就可以对其进行visualize
import dask

from operator import add
from dask.threaded import get
from dask.delayed import Delayed

dsk = {
   'x': 1,
   'y': 2,
   'z': (add, 'x', 'y'),
   'w': (sum, ['x', 'y', 'z'])
}

# wrapping dsk in a Dask Collection (Delayed)
delayed_dsk = Delayed("w", dsk)

# call visualize as usual
delayed_dsk.visualize()

# Or,
dask.visualize(delayed_dsk)

task graph visualized


0
将您的图形传递给 dask.vizulalize()
from dask.threaded import get
from operator import add
import dask

dsk = {
   'x': 1,
   'y': 2,
   'z': (add, 'x', 'y'),
   'w': (sum, ['x', 'y', 'z'])
}

get(dsk, "w")

dask.visualize(dsk)

请参阅 "可视化任务图" 文档章节。

谢谢您的回复!这将创建一张空白图片。 - Null Terminator
你是否已经安装了Graphviz?需要同时安装Graphviz系统库和Python Graphviz库。 - Alexandra Dudkina
是的。当我尝试可视化@delayed函数的返回值时,图形看起来如预期。 - Null Terminator
我会尝试更新受影响的库版本:dask、Python的graphviz模块和系统的graphviz库。似乎参与组件之间存在一些差异。 - Alexandra Dudkina
我认为对于最近的dask版本,这个答案是不正确的。如this issue所述,这在2021.12.0版本中停止工作。 @pavithraes的答案反映了相同的解决方法(虽然不太理想!)。 - Justin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接