码迷,mamicode.com
首页 > 其他好文 > 详细

在mini-batch训练中使用tqdm来创建进度条

时间:2020-07-23 22:33:11      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:import   深度学习   结构   ota   进度条   mini   date   unit   range   

tqdm是python中的一个用来供我们创建进度条的库。在进行深度学习的研究时,我们可以使用这个库为我们直观地展示当前的训练进度,下面来说说如何在mini-batch优化中使用这个库。

我希望程序能够在每一个epoch都使用进度条来显示当前epoch的训练情况,我使用的代码如下:

1 from tqdm import tqdm #从tqdm库中导入tadm类
2 
3 for epoch in range(epochs): #训练轮次
4     with tqdm(total = batch_num, desc=fEpoch {epoch+1}/{epochs}, unit=it) as pbar: #创建一个进度条
5         for batch_idx in range(batch_num): #mini-batch训练
6             ...
7             pbar.set_postfix({batch_loss:loss}) #在进度条后显示当前batch的损失
8             pbar.update(1) #更当前进度,1表示完成了一个batch的训练

所得到的的进度条如下图所示:

技术图片

“from tqdm import tqdm”就是从tqdm库中导入tqdm类。一开始我写成了“import tqdm”,导致程序报错,所以这一点要注意。

"with tqdm(total = batch_num, desc=fEpoch {epoch+1}/{epochs}‘, unit=it‘) as pbar: #创建一个进度条"使用python的with结构来创建一个tqdm对象pbar。如果不使用with结构,就需要在一次epoch训练的结尾调用tqdm对象的close()函数。这一语句中各个参数的意思是:

total:为一个epoch中batch的总数量,即迭代的总次数;

desc:放在进度条最前的一段描述,在此显示的是当前的epoch及总共需要多少个epoch;

unit:迭代速度的单位,it是iteration的简写,这里指的是以每秒完成多少次迭代作为速度度量并显示在进度条上,见上图中的“1.41it/s”。

“pbar.set_postfix({batch_loss:‘loss}) #在进度条后显示当前batch的损失”,在进度条的最后显示当前batch的损失,如图中的“batch_loss=1.66e+5”。

pbar.update(1)用来更新进度,这里的1指的是完成了一个batch的训练,让进度条加1。

上图中的“03:21<01:21”分别显示训练当前batch已经花费的时间和还需要消耗的时间。

在mini-batch训练中使用tqdm来创建进度条

标签:import   深度学习   结构   ota   进度条   mini   date   unit   range   

原文地址:https://www.cnblogs.com/AlgrithmsRookie/p/13367575.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!