首页 > 解决方案 > 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 终端中

标签: pythontqdm

解决方案


线索是Epoch: 1在第二行的末尾。

在您的代码中的某处,您将其打印出来,这会被抛出tqdm;它通常会使用\r(回车)字符返回到行首,但您正在打印换行符,因此前一行仍然存在。


推荐阅读