#dask #dask-distributed
#dask #dask-распределенный
Вопрос:
Вот минимальная воспроизводимая проблема.
При вызове
map_blocks
отображается «Ошибка значения: предоставленные фрагменты имеют 3 dimm, ожидается 4 dimm».
Вот мой код,
import dask.array as da
x = da.ones((10, 5, 10, 10), chunks=(10, 1, 2, 2))
a = x.map_blocks(f, chunks=(1, 2, 2))
где
def f(block):
return block.max(0)
Функция f
уменьшит количество входных данных.
И результаты показывают, что измерения не имеют аналогов.
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-4-51c4f85f71a8> in <module>
----> 1 a = x.map_blocks(f, chunks=(1, 2, 2))
2 a
~anaconda3libsite-packagesdaskarraycore.py in map_blocks(self, func, *args, **kwargs)
2116 @wraps(map_blocks)
2117 def map_blocks(self, func, *args, **kwargs):
-> 2118 return map_blocks(func, self, *args, **kwargs)
2119
2120 def map_overlap(self, func, depth, boundary=None, trim=True, **kwargs):
~anaconda3libsite-packagesdaskarraycore.py in map_blocks(func, name, token, dtype, chunks, drop_axis, new_axis, meta, *args, **kwargs)
617 raise ValueError(
618 "Provided chunks have {0} dims, expected {1} "
--> 619 "dims.".format(len(chunks), len(out_ind))
620 )
621 adjust_chunks = dict(zip(out_ind, chunks))
ValueError: Provided chunks have 3 dims, expected 4 dims.
Ответ №1:
Смотрите map_blocks(drop_axis=...)
ключевое слово
Комментарии:
1. MRocklin, спасибо за ваши предложения. Это работает хорошо.