1. 模块安装
pip install progressbar2
2. 代码示例
import progressbar
def train_epoch(self, epoch):
for m in self.model.values():
m.train()
pwidgets = [progressbar.Percentage(), " ", progressbar.Counter(format='%(value)d/%(max_value)d'), " ", progressbar.Bar(), " ",
progressbar.Timer(), ",", progressbar.ETA(), ",", progressbar.Variable('LR', width=1), ",",
progressbar.Variable('Loss')]
pbar = progressbar.ProgressBar(widgets=pwidgets, max_value=len(self.train_loader),
prefix="Epoch {}/{}: ".format(epoch, self.args.epochs)).start()
for batch, data in enumerate(self.train_loader):
###### 省略训练代码 ######
pbar.update(batch, LR=self.optimizer.state_dict()['param_groups'][0]['lr'],
Loss="{losses.val:.3f}|{losses.avg:.3f}".format(losses=losses))
pbar.finish()
代码解释:
-
pwidgets
是需要展示的内容progressbar.Percentage()
显示进度百分比progressbar.Counter(format='%(value)d/%(max_value)d')
计数器,value
值在后续 update 中给出,max_value
在progressbar.ProgressBar
中给出progressbar.Bar()
进程显示符号,默认“#”progressbar.Variable('Loss')
查看自定义变量,也在 update 中给出
- 在 for 循环中写 update 函数
- 在程序结束时写 finish 函数