两者有什么区别?tqdm 环绕任何可迭代对象。但是我不确定 tqdm 在给定两个参数时如何运行。
# train_ids = list
elements = ('a', 'b', 'c')
for count, ele in tqdm(enumerate(elements)):
print(count, i)
# two arguments
for count, ele in tqdm(enumerate(elements), total=len(train_ids)):
print(count, i)
Run Code Online (Sandbox Code Playgroud)
use*_*203 10
如果提供了可选变量 total(或带有 len() 的可迭代对象),则会显示预测统计信息。
同样来自文档:
total:int,可选。预期的迭代次数。如果(默认值:无),则尽可能使用 len(iterable)。作为最后的手段,只显示基本的进度统计信息(没有 ETA,没有进度条)。如果 gui 为 True 并且此参数需要后续更新,请指定初始的任意大正整数,例如 int(9e9)。
当您total作为参数提供给 时tqdm,您将估计代码应该运行多少迭代,因此它将为您提供预测信息(即使您提供的迭代没有长度)。
例子
如果我们提供的发电机(东西没有__len__),以tqdm 没有一个total说法,我们没有得到一个进度条,我们只是得到经过时间:
no_len = (i for i in range(50))
for i in tqdm(no_len):
time.sleep(0.1)
# Result
19it [00:01, 9.68it/s]
Run Code Online (Sandbox Code Playgroud)
但是,如果我们使用total参数来给出预期的迭代,tqdm现在将估计进度:
for i in tqdm(no_len, total=49):
time.sleep(0.1)
# Result
94%|????????????????????????????????????????? | 46/49 [00:04<00:00, 9.72it/s
Run Code Online (Sandbox Code Playgroud)
除了total参数之外,tqdm还有一整套附加参数,您可以在此处找到
| 归档时间: |
|
| 查看次数: |
9098 次 |
| 最近记录: |