从 dask 对象查看 dask 图
Posted
技术标签:
【中文标题】从 dask 对象查看 dask 图【英文标题】:Viewing dask graph from a dask object 【发布时间】:2018-05-04 05:14:04 【问题描述】:在 Dask (2015) 上 Matthew Rocklin 的 presentation 中,他展示了一个查看 dask graph 底层 dask.array
的示例:
自那以后,该属性的表示似乎发生了一些变化:
import dask.array as da
x = da.arange(15, chunks=(5,))
print(x.dask)
# <dask.sharedict.ShareDict object at 0x000001FD8869C2E8>
for k, v in x.dask.items():
print(k)
print(v)
print()
# ('arange-367e8f921d6d8a8e494d9e8e9a7f5425', 0)
# (<function arange at 0x000001FD8857D158>, 0, 5, 1, 5, dtype('int32'))
#
# ('arange-367e8f921d6d8a8e494d9e8e9a7f5425', 1)
# (<function arange at 0x000001FD8857D158>, 5, 10, 1, 5, dtype('int32'))
#
# ('arange-367e8f921d6d8a8e494d9e8e9a7f5425', 2)
# (<function arange at 0x000001FD8857D158>, 10, 15, 1, 5, dtype('int32'))
如何重现该行为以从上方查看 dask.graph
的基本(旧)形式?
【问题讨论】:
【参考方案1】:您可以通过调用dict
将ShareDict
对象转换为普通的dict
对象。
>>> dict(x.dask)
但是,输出将比以前的版本更详细(如论文中所示)。然而,当前版本在许多方面都更安全,即使它在美学上不太令人愉悦。
【讨论】:
所以,当我这样做时,我得到了上面稍微混乱的表示(通过在可迭代的x.dask.items()
上打印。有没有办法从你的论文中获得更精简的版本?
基本上,看起来它们实际上具有相同的结构,但例如,“x”被替换为“arange-367e8f921d6d8...”。
简而言之,不,当前版本没有。然而,当前版本在许多方面都更安全,即使它在美学上不太令人愉悦。以上是关于从 dask 对象查看 dask 图的主要内容,如果未能解决你的问题,请参考以下文章