Dask 不显示进度条
Dask Not Showing Progress Bar
当我 运行 这个我除了看到一个 progress bar,但我没有。
from math import factorial
from dask.diagnostics import ProgressBar
from dask.distributed import Client
def dask_progress():
client = Client()
print(client)
m = client.map(factorial, range(10))
with ProgressBar():
print(client.gather(m))
if __name__ == "__main__":
dask_progress()
这是输出。
<Client: 'tcp://127.0.0.1:65468' processes=4 threads=8, memory=17.18 GB>
[1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880]
我也看到了同样的事情
from math import factorial
from dask.distributed import Client, progress
def dask_progress():
client = Client()
print(client)
m = client.map(factorial, range(10))
progress(m)
print(client.gather(m))
if __name__ == "__main__":
dask_progress()
我需要做什么才能看到进度条?
不同的调度器有不同的进度条。
见https://docs.dask.org/en/latest/understanding-performance.html
ProgressBar(本地)与进度(分布式)
正如第一个答案中所暗示的,您的第一个代码块不会显示进度条,因为您使用的是分布式调度程序。 ProgressBar
用于本地调度程序。参见 https://docs.dask.org/en/latest/diagnostics-local.html
终端与笔记本
当我在我的终端中 运行 它作为 Python 脚本时,你的第二个代码块没有为我重现错误。这是一个非常快的操作,所以进度条只显示一瞬间;但它确实出现了。
然而,当我 运行 你在 Jupyter notebook 中的第二个代码块时, ProgressBar
确实没有出现。如果你在笔记本上工作,你可以这样做:
m = client.map(factorial, range(1000))
progress(m)
Dask 文档
This section of the Dask docs 可能与此处相关:“在笔记本中,进度的输出必须是单元格中的最后一条语句。通常,这意味着在单元格末尾调用进度。”我怀疑将 progress
调用包装在 if __name__ == "__main__":
中会在幕后引起问题。
当我 运行 这个我除了看到一个 progress bar,但我没有。
from math import factorial
from dask.diagnostics import ProgressBar
from dask.distributed import Client
def dask_progress():
client = Client()
print(client)
m = client.map(factorial, range(10))
with ProgressBar():
print(client.gather(m))
if __name__ == "__main__":
dask_progress()
这是输出。
<Client: 'tcp://127.0.0.1:65468' processes=4 threads=8, memory=17.18 GB>
[1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880]
我也看到了同样的事情
from math import factorial
from dask.distributed import Client, progress
def dask_progress():
client = Client()
print(client)
m = client.map(factorial, range(10))
progress(m)
print(client.gather(m))
if __name__ == "__main__":
dask_progress()
我需要做什么才能看到进度条?
不同的调度器有不同的进度条。
见https://docs.dask.org/en/latest/understanding-performance.html
ProgressBar(本地)与进度(分布式)
正如第一个答案中所暗示的,您的第一个代码块不会显示进度条,因为您使用的是分布式调度程序。 ProgressBar
用于本地调度程序。参见 https://docs.dask.org/en/latest/diagnostics-local.html
终端与笔记本
当我在我的终端中 运行 它作为 Python 脚本时,你的第二个代码块没有为我重现错误。这是一个非常快的操作,所以进度条只显示一瞬间;但它确实出现了。
然而,当我 运行 你在 Jupyter notebook 中的第二个代码块时, ProgressBar
确实没有出现。如果你在笔记本上工作,你可以这样做:
m = client.map(factorial, range(1000))
progress(m)
Dask 文档
This section of the Dask docs 可能与此处相关:“在笔记本中,进度的输出必须是单元格中的最后一条语句。通常,这意味着在单元格末尾调用进度。”我怀疑将 progress
调用包装在 if __name__ == "__main__":
中会在幕后引起问题。