python - tqdm 在循环开始时打印额外内容
问题描述
我正在开发一个简单的批处理迭代器,它应该能够在运行一组完整的值时跟踪进度。为此,我正在使用 tqdm,但在迭代开始时它正在打印空内容。
代码:
for start_idx in trange(0, len(inputs) - batchsize + 1, batchsize):
excerpt = slice(start_idx, start_idx + batchsize)
输出类似:
Epoch: 0
100%|██████████| 1562/1562 [00:02<00:00, 630.24it/s]
0%| | 0/1562 [00:00<?, ?it/s]Epoch: 1
62%|██████▏ | 965/1562 [00:01<00:00, 623.74it/s]
我在进度条模块上遇到过类似的问题,我只需要交换输出类型,sys.stdout
但在这个模块中我找不到设置它的参数。有什么建议么?
Edit1:这发生在 PyCharm 终端中
解决方案
线索是Epoch: 1
在第二行的末尾。
在您的代码中的某处,您将其打印出来,这会被抛出tqdm
;它通常会使用\r
(回车)字符返回到行首,但您正在打印换行符,因此前一行仍然存在。