深度学习进度显示神器:tqdm详解

您所在的位置:网站首页 进度条是啥意思啊 深度学习进度显示神器:tqdm详解

深度学习进度显示神器:tqdm详解

2024-06-07 17:44| 来源: 网络整理| 查看: 265

1 tqdm介绍

tqdm 是一个快速、可扩展的Python进度条库,用于在Python长循环中添加一个进度提示信息,用户只需封装任何迭代器 tqdm(iterator)。其名字来源于阿拉伯语单词 "taqaddum"(تقدّم)的缩写,意为“进步”或“进展”。tqdm在各种环境中均有优秀表现,包括终端、Jupyter Notebook以及图形界面等。

tqdm是一个强大的工具,它简单易用,高度可定制,适合于各种循环任务,特别是在数据处理和机器学习领域中。通过使用tqdm,开发者可以提供更好的用户体验,准确地展示程序的执行进度。

1.1 基本特性

tqdm的基本特性如下所述:

易用性:tqdm的使用非常简单,通常只需在循环的迭代器上添加tqdm()。只需在 Python 循环中包裹你的迭代器,一行代码就能产生一个精美的进度条。

灵活性:兼容广泛的迭代环境,包括列表、文件、生成器等。它可以和 for 循环、pandas dataframe的 apply 函数以及 Python 的 map 函数等等配合使用。

高效性:对代码的运行效率影响极小。tqdm 使用了智能算法,即使在数据流非常快的情况下,也不会拖慢你的代码速度。

可定制性:允许用户自定义进度条的各种属性,如进度条长度、格式等。

1.2 安装和使用

安装 tqdm 非常简单,可以使用 pip:

pip install tqdm

在代码中使用 tqdm,你只需要将迭代器传递给 tqdm() 函数。例如,用于基本的 for 循环:

from tqdm import tqdm for i in tqdm(range(10000)): # 执行某些操作

1.3 应用场景

数据处理:在对大型数据集进行处理时,使用 tqdm 显示进度。

模型训练:在机器学习或深度学习模型训练过程中,用于追踪训练进度。

文件处理:在读写大文件时,显示处理进度。

网络请求:在处理长时间的网络请求时,用于显示进度信息。

1.4 高级功能

嵌套循环:tqdm 支持嵌套循环的进度显示,只需在内部循环中也加上 tqdm()。

手动更新:可以手动更新进度条,这在进度信息不是定期更新时非常有用。

在Jupyter Notebook中使用:tqdm提供了一个专门的tnrange()函数,用于在Jupyter Notebook环境中更好地显示进度条。

自定义样式:用户可以自定义进度条的布局、颜色等。

1.5 tqdm 的优点

易于使用:tqdm 非常简单易用,只需几行代码即可在循环中添加一个进度条。

灵活性:它可以在各种循环中使用,包括 for 循环、列表解析式,甚至是 Pandas DataFrame 的 apply 函数。

自定义性:tqdm 提供多种定制选项,如进度条的长度、进度单位、进度条样式等。

轻量级:tqdm 非常轻量,对程序的性能影响极小。

实时更新:它能实时显示进度,包括已经过去的时间、预估剩余时间和当前速率。

广泛的兼容性:tqdm 可以在命令行界面 (CLI) 和图形用户界面 (GUI) 中使用,甚至可以集成到 Jupyter Notebooks 中。

丰富的文档和社区支持:tqdm 拥有详细的文档和活跃的社区,方便用户学习和解决问题。

1.6 tqdm常见参数

tqdm的常见参数有:

desc('str'): 传入进度条的前缀

mininterval(float):最小的更新时间 [default: 0.1] seconds

maxinterval(float):最大的更新时间 [default: 10] seconds. 只有在dynamic_miniters

miniters(int or float):最小的展示更新进度,如果设置为0或者是dynamic_miniters程序会自动的调整去让miniterval与它项适应

ascii(bool or str):如果调整为True的话会使用ASCII(美国信息交换标准代码)码,默认为False会使用unicode

ncols(int):整个输出信息的宽度

nrows(int):进度条的高速

dynamic_ncols(bool):会在环境中持续改变ncols和nrows

smoothing(float):会平均移动因素和预计的时间

bar_format(str):可以自己定义一个

position(int):设置打印进度条的位置,可以设置多个bar

colour(str):进度条的颜色

set_postfix : 设置信息

1.7 注意事项 在多线程或多进程环境中使用tqdm可能需要额外的配置。进度条的更新频率过高可能会影响程序性能,特别是在非常快的循环中。在某些文本环境(如某些IDE的控制台)中,进度条的显示可能会有所不同。 2 tqdm使用示例 2.1 tqdm直接传入可迭代对象 import time from tqdm import tqdm for i in tqdm(range(60)): print('step i:', i) time.sleep(0.01)

运行结果显示如下:(默认情况下,0.1s打印一次进度信息)

0%| | 0/60 [00:00


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3