首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tqdm不显示栏

tqdm不显示栏
EN

Stack Overflow用户
提问于 2018-02-23 03:42:00
回答 2查看 19.1K关注 0票数 23

我使用的是tqdm库,它没有给我提供进度条,相反,它给我的输出看起来像这样,它只是告诉我迭代:

251it [01:44, 2.39it/s]

你知道为什么代码会这样做吗?我想这可能是因为我向它传递了一个生成器,但我再次使用了过去有效的生成器。我以前从来没有真正弄乱过tdqm格式化。以下是部分源代码:

代码语言:javascript
复制
train_iter = zip(train_x, train_y) #train_x and train_y are just lists of elements
....
def train(train_iter, model, criterion, optimizer):
    model.train()
    total_loss = 0
    for x, y in tqdm(train_iter):
        x = x.transpose(0, 1)
        y = y.transpose(0, 1)
        optimizer.zero_grad()
        bloss = model.forward(x, y, criterion)   
        bloss.backward()
        torch.nn.utils.clip_grad_norm(model.parameters(), args.clip)
        optimizer.step()        
        total_loss += bloss.data[0]
    return total_loss
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-23 04:09:13

tqdm需要知道将执行多少次iter(总量)才能显示进度条。

您可以尝试这样做:

代码语言:javascript
复制
from tqdm import tqdm

train_x = range(100)
train_y = range(200)

train_iter = zip(train_x, train_y)

# Notice `train_iter` can only be iter over once, so i get `total` in this way.
total = min(len(train_x), len(train_y))

with tqdm(total=total) as pbar:
    for item in train_iter:
        # do something ...
        pbar.update(1)
票数 30
EN

Stack Overflow用户

发布于 2021-04-20 16:53:05

用长度填充"total“参数对我来说很有效。现在出现进度条。

代码语言:javascript
复制
from tqdm import tqdm

# ...
for imgs, targets in tqdm( train_dataloader, total=len(train_dataloader)):
   # ...
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48935907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档