tqdm的简单用法
在Python编程中,当我们所编写的代码中含有循环并且运行此代码比较耗时时,那么展示进度条是一个直观并且重要的方式。这种方式能够帮助我们理解现在程序执行到何种状态,运行的进度。在python中,tqdm库便能够方便地帮助我们实现进度条,接下来便介绍有关tqdm的几种常用并且简单的用法。
tqdm的安装
tqdm的安装十分简单,直接通过pip指令即可进行安装
tqdm最简单的使用
tqdm最简单的使用如下所示,编写如下代码
import time
from tqdm import tqdm
for i in tqdm(range(100)):
time.sleep(0.05)
运行时会出现如下进度条
这里便是最简单的一种写法,只需要 from tqdm import tqdm 之后,在类似于 for i in range(N) 的地方,在range外面套上个tqdm即可。此时需要注意,如果只是单纯地 import tqdm, 再在range外面套tqdm,这是不可行的,就是代码中需要用到的tqdm并不是tqdm库,而是tqdm库中的tqdm,这里稍加注意即可,因为有时忘了这个问题,导致的忽然报错可能会让各位伙伴突然愣一下。
tqdm的稍微复杂点的使用
笔者在接触深度学习相关的代码时,在pointer networks论文相关的代码里,看到了类似于如下的代码:
data_iter = tqdm(range(self.data_size), unit='data')
for i, _ in enumerate(data_iter):
data_iter.set_description('Data points %i/%i' % (i+1, self.data_size))
points_list.append(np.random.random((self.seq_len, 2)))
运行此代码,会出现如下类似的效果:
这里的效果和上面的最简单的方法的效果也差不多,就是写法不一样而已。首先需要将一个可迭代对象套上个tqdm,然后unit表示单位,默认是it。这里展示几个示例就行,就能够明显地看出unit参数决定的是什么。
后面在每次循环时,只需要每次调用set_description( )函数即可,这个函数的作用就相当于是在每次的进度条前面添加一个文本描述,同样参考上面的示例就可以很容易地看出其作用。
其实不添加这个set_description( )函数也是可以地,就是进度条前面没有文字信息,示例如下:
所以加不加这个语句,其作用就是决定每次迭代地进度条前面有没有文字提示信息。总之,对tqdm的介绍就到这里了,是不是很简单呢