объединение tqdm с отложенным выполнением с помощью dask в python
tqdm и dask - это удивительные пакеты для итераций в python. В то время как tqdm реализует необходимый индикатор выполнения, dask реализует многопоточную платформу, и они оба могут сделать итерационный процесс менее разочаровывающим. И все же ... мне трудно совместить их вместе.
Например, следующий код реализует отложенное выполнение в dask, с индикатором выполнения tqdm.trange. Дело в том, что так как delayed выполняется быстро, индикатор выполнения завершается немедленно, в то время как реальные вычислительные усилия выполняются в течение части compute.
from dask import delayed,compute
from tqdm import trange
from time import sleep
ct = time()
result= []
def fun(x):
sleep(x)
return x
for i in trange(10):
result.append(delayed(fun)(i))
print compute(result)
Как я могу прикрепить индикатор выполнения к фактическому выполнению команды compute?
1 ответ:
Рассмотрим индикатор выполнения Даска
from dask.diagnostics import ProgressBar with ProgressBar(): compute(result)Постройте собственную диагностику
Вы можете использовать эту архитектуру плагинов для получения сигнала в конце каждой задачи. http://dask.pydata.org/en/latest/diagnostics.html
Вот пример того, как кто-то делает именно это: https://github.com/tqdm/tqdm/issues/278
Comments