tqdm:python的简单可视化进度

tqdm:python的简单可视化进度

说明

​ 本篇文章的主要目的是快速上手使用,而不是解析源码。

目录结构

1. 应用场景

​ 进度条应用的场景很多,不过我最近一直在研究CV方向的内容,因此进度条主要还是用在可视化显示网络训练的流程。

2. 库安装

​ tqdm是python的一个第三方库,可以快速简单的实现进度条的可视化显示。

​ 安装方法很简单,Windows在cmd命令行窗口运行下面的命令即可:

pip install tqdm

3. 方法速览

tqdm对象创建

​ 这里我们主要使用到的方法是与库同名的方法,即tqdm

from tqdm import tqdm

​ 该方法的作用是创建一个“进度条对象”,其需要传入一个参数,通常来说这个参数为一个可迭代对象。比如:

# 1. range函数
bar = tqdm(range(10))
# 2. 列表
bar = tqdm(['a',1,2,3,4])
# 3. 字典
bar = tqdm({
    
    'k':1,'b':2})  # 不过迭代访问时访问的是key
# 4. torch里面的数据加载器(这也是我需要的)
train_bar = tqdm(train_loader)

​ 当创建了tqdm对象后,我们迭代时不再使用刚刚的可迭代对象,而是直接使用tqdm对象即可,如下所示:

# 导包
from tqdm import tqdm
# 1. 创建进度条对象
bar = tqdm(range(10))
# 2. 迭代访问
for i in bar:
	print(i)

​ 上述代码的运行结果为:

在这里插入图片描述

tqdm重要方法

​ 该对象具有一个很重要的方法,即tqdm.desc,该方法可以实现自定义显示进度条的内容。

​ 上面演示的代码,只是显示了进度条,如果我们想要进度条的内容格式为你好,这是我的进度条{}/{},其中两个中括号的内容分别为当前索引和总的数目。

​ 那么可以这么修改代码:

# 导包
from tqdm import tqdm
import  time
# 1. 创建进度条对象
bar = tqdm(range(10))
# 2. 显示
for e in bar:
    bar.desc = '你好,这是我的进度条 {}/{}'.format(e+1, 10)

​ 运行结果如下:

在这里插入图片描述

​ 值得再次提醒的是:迭代的对象一定要用tqdm对象,不然没有效果

注意点

​ 上面代码由于很短,因此会在非常短的时间内运行完毕,导致我们看不见进度条的变换,此时可以用time.sleep(0.5)方法来增加延时。

4. 案例

​ 下面给大家一个完整的演示代码:

# 导包
from tqdm import tqdm
import  time
# 1. 创建进度条对象
bar = tqdm(range(10))
# 3. 访问
for e in bar:
    bar.desc = 'hello,test {}/{}'.format(e+1, 10)
    time.sleep(0.5)

​ 结果如下gif图像所示:(我使用调试的方式录的屏)

在这里插入图片描述

5. 总结

​ 其实进度条的显示库还有很多,并且有很多库实现的进度条非常炫酷,大家可以去自己尝试尝试。

​ 不过通常来讲,写脚本,tqdm这样简单的进度条就够我们使用了。

猜你喜欢

转载自blog.csdn.net/weixin_46676835/article/details/131393311
今日推荐