заставить функцию отбраковки работать на графике даска - PullRequest
0 голосов
/ 11 марта 2020

Я хочу использовать функцию оптимизации отбраковки на графике.

Вот код моего варианта использования:

input_array = get_dask_array_from_hdf5(input_array, '/data', logic_cs=(770, 605, 700))
# input array is a dask array
subarray = input_array[:1540, :520: 210]
subarray = subarray + 25
d = subarray.dask.dicts

from dask.optimization import cull
dsk1, dependencies = cull(d, ['add-7c83a918eb5b1b9847698e0d800caf0c'])

Как вы можете видеть выше, я просто хочу добавить некоторое значение к части массива (я загрузил массив с помощью пользовательского функция, которая использует from_hdf5 в фоновом режиме).

Мой граф задач содержит некоторые «getitem» задачи, которые мне не нужны, поэтому я хочу использовать функцию cull для их удаления.

Но когда я использую:

cull(d, ['add-7c83a918eb5b1b9847698e0d800caf0c'])

Это обрезает все, кроме задачи «добавить». Я также хотел бы сохранить полезные задачи «getitems», потому что функция add применяется к этим «getitem».

Внутри этой задачи «add» находится «блочная функция», и нет упоминания о getitems для применения блочной функции, поэтому я думаю, что именно поэтому функция cull удаляет все, кроме задачи добавления.

Однако я не знаю, как приступить к изменению блочной функции, чтобы добавить полезные getitems в качестве аргументов блочной функции.

Надеюсь, я прояснил себя.

Заранее благодарю за помощь.

1 Ответ

1 голос
/ 13 марта 2020

Массив Dask по умолчанию отбирает ненужные узлы вашего графика. Вам не нужно использовать функции внутренней оптимизации вручную.

...