python模块之tqdm:简易教程

python模块------tqdm

tqdm可以让你的程序显示一个智能进度表,它可以包装任何可迭代的内容。除了低开销的特点之外,tqdm还使用智能算法来预测剩余时间并跳过不必要的迭代显示,它的开销在大多数情况下可以忽略不计。

用法

如下所示:

from tqdm import tqdm

for i in tqdm(range(10000)):
    pass

for i in trange(10):
    pass

效果:
在这里插入图片描述
trange()tqdm(range(i))的一个特殊优化实例

tqdm对象

装饰一个可迭代对象,返回一个迭代器,它的行为与原始可迭代对象完全相同,但每次请求值时都会打印一个动态更新的进度条。

def __init__(self, iterable=None, desc=None, total=None, leave=True, file=None,  
             ncols=None, mininterval=0.1, maxinterval=10.0, miniters=None,  
             ascii=None, disable=False, unit='it', unit_scale=False,  
             dynamic_ncols=False, smoothing=0.3, bar_format=None, initial=0,  
             position=None, postfix=None, unit_divisor=1000, write_bytes=False,  
             lock_args=None, nrows=None, colour=None, delay=0, gui=False,  
             **kwargs):

常用参数说明:

iterable=None: 一个可迭代对象
desc=None: str类型,进度条的前缀
total=None: int or float, 预期的迭代次数。如果未指定,如果可能,使用 len(iterable)
file=None: `io.TextIOWrapper` or `io.StringIO`, optional
			Specifies where to output the progress messages
			(default: sys.stderr). Uses `file.write(str)` and `file.flush()`  
			methods.  For encoding, see `write_bytes`.
ncols=None: int, optional  
		    整个输出消息的宽度。
mininterval=0.1: float, optional  
		最小进度显示更新间隔 [默认值:0.1] 秒。
maxinterval  : float, optional  
	    最大进度显示更新间隔 [默认:10] 秒。
disable  : bool, optional  
	    是否禁用整个进度条包装器

应用

神经网络训练进度显示:

with tqdm(initial=self.step, total=self.train_num_steps, disable=not accelerator.is_main_process) as pbar:
	...
	# 设置
	pbar.set_description(f'loss: {
      
      total_loss:.4f}')
	# 手动更新进度
	pbar.update(1)

效果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45248370/article/details/130784507