gpt4 book ai didi

python - 正确选择 dask 数组的 block 规范

转载 作者:太空狗 更新时间:2023-10-29 21:39:18 25 4
gpt4 key购买 nike

根据dask documentaion可以通过以下三种方式之一指定 block :

  • a blocksize like 1000
  • a blockshape like (1000, 1000)
  • explicit sizes of all blocks along all dimensions, like ((1000, 1000, 500), (400, 400))

Your chunks input will be normalized and stored in the third and most explicit form..

在尝试使用 visualize() 函数了解 block 的工作方式后,还有一些我不确定的事情:

如果输入是规范化的,我选择哪种输入形式有关系吗?

Blocksize 表示每个 block 的大小为 X,即 1000。blockshape 输入指定什么?

当给出一个blockshape输入时,参数的顺序有区别吗?它与数组/矩阵的形状有什么关系?

最佳答案

该列表中较低的形式更明确,并且允许 block 形状中存在更大的不对称性。

例子

我们将通过一系列 chunks 的例子来讨论这个问题在以下数组上:

1 2 3 4 5 6
7 8 9 0 1 2
3 4 5 6 7 8
9 0 1 2 3 4
5 6 7 8 9 0
1 2 3 4 5 6

我们展示了多么不同chunks参数将数组分成不同的 block

chunks=3

大小为 3 的对称 block

1 2 3  4 5 6
7 8 9 0 1 2
3 4 5 6 7 8

9 0 1 2 3 4
5 6 7 8 9 0
1 2 3 4 5 6

chunks=2

大小为 2 的对称 block

1 2  3 4  5 6
7 8 9 0 1 2

3 4 5 6 7 8
9 0 1 2 3 4

5 6 7 8 9 0
1 2 3 4 5 6

chunks=(3, 2)

不对称但重复的 block 大小 (3, 2)

1 2  3 4  5 6
7 8 9 0 1 2
3 4 5 6 7 8

9 0 1 2 3 4
5 6 7 8 9 0
1 2 3 4 5 6

chunks=(1, 6)

不对称但重复的 block 大小 (1, 6)

1 2 3 4 5 6

7 8 9 0 1 2

3 4 5 6 7 8

9 0 1 2 3 4

5 6 7 8 9 0

1 2 3 4 5 6

chunks=((2, 4), (3, 3))

不对称和非重复 block

1 2 3  4 5 6
7 8 9 0 1 2

3 4 5 6 7 8
9 0 1 2 3 4
5 6 7 8 9 0
1 2 3 4 5 6

chunks=((2, 2, 1, 1), (3, 2, 1))

不对称和非重复 block

1 2 3  4 5  6
7 8 9 0 1 2

3 4 5 6 7 8
9 0 1 2 3 4

5 6 7 8 9 0

1 2 3 4 5 6

讨论

后面的例子很少由用户提供原始数据,而是来自复杂的切片和广播操作。通常我使用最简单的形式,直到我需要更复杂的形式。 block 的选择应与您要进行的计算保持一致。

例如,如果您计划沿第一个维度取出薄片,那么您可能希望使该维度比其他维度更细。如果您打算学习线性代数,那么您可能需要更多对称 block 。

关于python - 正确选择 dask 数组的 block 规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34895846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com