python tqdm的用法_python tqdm库的使用

Tqdm库比较常用,用于显示进度条。

简单用法:

from tqdm import tqdm

for i in tqdm(range(2)):

pass

100%|███████████████████| 2/2 [00:00<00:00, 1998.72it/s]

从上面可以看到生成一个长度为2的列表传入tqdm中,在for中迭代,此时输出了进度条,这里tqdm全部使用了默认参数,默认进度条样式就是如上所示;通常默认进度条所输出的信息并不满足我们的需求,tqdm还可以定制进度条样式;

tdqm数据参数支持的数据类型是可迭代的对象iterable,在Python中默认的可迭代对象有:list、str、tuple、dict、file、xrange等,当然还有自定义可迭代对象;

tqdm参数

desc=None, str类型,作为进度条说明

total=None, 预期的迭代次数

file=None, 输出方式,默认为sys.stderr

ncols=None, 进度条长度

mininterval=0.1, 进度条最小的更新间隔,单位秒,默认:0.1

maxinterval=10.0, 进度条最大更新间隔,单位秒,默认:10

unit='it', 单位,默认it每秒迭代数

bar_format=None, 进度条格式

postfix 字典形式信息,例如:速度=5

这些参数为相对比较常用的参数,并且全部都是可选参数;在自定义进度条当中比较重要的的一个参数为:bar_format,用于定义进度条的具体格式,所包含的具体数据信息;

下面主要介绍这个参数的具体用法;

Specify a custom bar string formatting. May impact performance.

[default: '{l_bar}{bar}{r_bar}'], where

l_bar='{desc}: {percentage:3.0f}%|' and

r_bar='| {n_fmt}/{total_fmt} [{elapsed}

'{rate_fmt}{postfix}]'

Possible vars: l_bar, bar, r_bar, n, n_fmt, total, total_fmt,

percentage, elapsed, elapsed_s, ncols, nrows, desc, unit,

rate, rate_fmt, rate_noinv, rate_noinv_fmt,

rate_inv, rate_inv_fmt, postfix, unit_divisor,

remaining, remaining_s.

Note that a trailing ": " is automatically removed after {desc}

if the latter is empty.

上面为tqdm对bar_format的参数描述;从中可看出:

进度条默认格式为: {l_bar}{bar}{r_bar}

进度条分为三部分: 中间的图形(bar),图形左边(l_bar)、图形右边(r_bar)

l_bar: {desc}: {percentage:3.0f}%|

bar: 进度条

r_bar: |{n_fmt}/{total_fmt}[{elapsed}

100%|█████████████████| 3/3 [00:03<00:00, 1.00s/it]

percentage:百分比

n_fmt:当前数

total_fmt:总数

elapsed:消耗的时间

remaining:剩余时间

rate_fmt:速率

postifx:后缀字典描述

desc、postfix默认为空;

自定义进度条:

1、bar_format=

'进度:{percentage:3.0f}%|{bar}|{n}/{total}[{elapsed}

进度:100%|████████████████████|3/3[00:03<00:00, 1.00s/it]

2、bar_format='进度:{percentage:3.0f}%|{bar}|{n}/{total}[{rate_fmt}{postfix}]'

进度:100%|████████████████████|3/3[ 1.00s/it]

批量数据进度条

import numpy as np

from torch.utils.data import DataLoader

import time

from tqdm import tqdm, tqdm_notebook

from random import random

data =np.array([1,2,3,4])

data_loader = DataLoader(data, batch_size=2, num_workers=0, shuffle=False)

iterator = tqdm(data_loader,maxinterval=10,

mininterval=2, ncols=80,

bar_format='{l_bar}|{bar}| {n_fmt}/{total_fmt} [{rate_fmt}{postfix}|{elapsed}

nrows=10,smoothing=0.1)

epoch =0

for d in iterator:

time.sleep(2)

epoch +=1

print(d)

iterator.set_description('epoch %d' %epoch)

iterator.set_postfix_str('loss={:^7.3f}'.format(random()))

8cc76200d301fb8c10ba3cb6ebbee0f9.png

以上就是python tqdm库的使用的详细内容,更多关于python tqdm库的资料请关注其它相关文章!

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这两个话题有些不相关,我可以分别介绍一下。 首先,tqdm 是一个 Python 进度条,可以在命令行中显示循环进度,非常方便。 安装: ``` pip install tqdm ``` 使用: ```python from tqdm import tqdm for i in tqdm(range(100)): # do something ``` 接下来是 PyTorch BEGAN 的实现。BEGAN 是一种生成式对抗网络(GAN)的变体,它可以生成高质量的图像。 安装 PyTorch: ``` pip install torch torchvision ``` BEGAN 的 PyTorch 实现可以在 GitHub 上找到。这里提供一个简单的实例: ```python import torch import torch.nn as nn import torch.optim as optim from torch.autograd import Variable from torchvision import datasets, transforms from tqdm import tqdm # define the model class Generator(nn.Module): def __init__(self): super(Generator, self).__init__() # define the layers def forward(self, x): # define the forward pass class Discriminator(nn.Module): def __init__(self): super(Discriminator, self).__init__() # define the layers def forward(self, x): # define the forward pass # define the loss function criterion = nn.BCELoss() # define the optimizer optimizer_G = optim.Adam(generator.parameters(), lr=0.0002, betas=(0.5, 0.999)) optimizer_D = optim.Adam(discriminator.parameters(), lr=0.0002, betas=(0.5, 0.999)) # prepare the data transform = transforms.Compose([ transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,)) ]) train_loader = torch.utils.data.DataLoader( datasets.MNIST('data', train=True, download=True, transform=transform), batch_size=64, shuffle=True) # train the model for epoch in range(epochs): for i, (images, _) in enumerate(tqdm(train_loader)): # train the discriminator # train the generator # generate a sample image z = Variable(torch.randn(64, 100)) sample = generator(z) # save the sample image ``` 以上代码中,需要自己实现 Generator 和 Discriminator 的定义和 forward 方法。在训练过程中,需要分别训练 Generator 和 Discriminator,具体实现可以参考 BEGAN 论文中的算法。在循环中加入 tqdm,可以显示训练进度。最后,可以生成一张样本图片并保存。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值