【问题标题】:Viewing dask graph from a dask object从 dask 对象查看 dask 图
【发布时间】: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 的基本(旧)形式?

【问题讨论】:

    标签: python dask


    【解决方案1】:

    您可以通过调用dictShareDict 对象转换为普通的dict 对象。

    >>> dict(x.dask)
    

    但是,输出将比以前的版本更详细(如论文中所示)。然而,当前版本在许多方面都更安全,即使它在美学上不太令人愉悦。

    【讨论】:

    • 所以,当我这样做时,我得到了上面稍微混乱的表示(通过在可迭代的 x.dask.items() 上打印。有没有办法从你的论文中获得更精简的版本?
    • 基本上,看起来它们实际上具有相同的结构,但例如,“x”被替换为“arange-367​​e8f921d6d8...”。
    • 简而言之,不,当前版本没有。然而,当前版本在许多方面都更安全,即使它在美学上不太令人愉悦。
    猜你喜欢
    • 2019-11-01
    • 2017-06-18
    • 2017-02-05
    • 1970-01-01
    • 2018-08-08
    • 1970-01-01
    • 1970-01-01
    • 2021-05-01
    • 1970-01-01
    相关资源
    最近更新 更多