Pytorch Lightning验证时TQDMProgressBar进度条输出异常问题与解决方案

问题描述

在使用Pytorch Lightning时,若使用Pycharm或在Colab中用“python train.py”方式运行时,验证时的进度条会出现一个batch打印一行的情况。

例如:

trainer = pl.Trainer(
            callbacks=[TQDMProgressBar()],
        )

在Pycharm中运行时,进度条会出现如下情况:

Epoch 0: 100%|██████████| 20/20 [00:13<00:00,  1.49it/s, v_num=10]
Validation: 0it [00:00, ?it/s]
Validation:   0%|          | 0/5 [00:00<?, ?it/s]
Validation DataLoader 0:   0%|          | 0/5 [00:00<?, ?it/s]
Validation DataLoader 0:  20%|██        | 1/5 [00:00<00:00, 28.66it/s]
Validation DataLoader 0:  40%|████      | 2/5 [00:00<00:00, 27.07it/s]
Validation DataLoader 0:  60%|██████    | 3/5 [00:00<00:00, 27.41it/s]
Validation DataLoader 0:  80%|████████  | 4/5 [00:00<00:00, 26.82it/s]

Validation DataLoader的进度条出现多次。

解决方案

重写TQDMProgressBarinit_validation_tqdm方法。代码如下:

class MyTQDMProgressBar(TQDMProgressBar):

    def __init__(self):
        super(MyTQDMProgressBar, self).__init__()

    def init_validation_tqdm(self):
        bar = Tqdm(
            desc=self.validation_description,
            position=0,  # 这里固定写0
            disable=self.is_disabled,
            leave=True,  # leave写True
            dynamic_ncols=True,
            file=sys.stdout,
        )
        return bar

然后使用MyTQDMProgressBar代替TQDMProgressBar即可。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
PyTorch Lightning是一种轻量级的高级PyTorch封装,它使得训练神经网络更加容易、更加模块化。它提供了许多常用的功能,例如自动分布式训练、自动检查点、自动日志记录等等。下面是一个PyTorch Lightning的学习指南: 1. 先学习PyTorch基础知识:在学习PyTorch Lightning之前,您需要先学习PyTorch的基础知识,例如如何构建神经网络、如何训练模型等等。 2. 安装PyTorch Lightning:在安装PyTorch Lightning之前,您需要先安装PyTorch。然后可以通过pip安装PyTorch Lightning。 3. 了解PyTorch Lightning的核心概念:PyTorch Lightning的核心概念是“LightningModule”、“Trainer”和“DataModule”。LightningModule是您定义神经网络的地方,Trainer是您定义训练过程的地方,DataModule是您定义数据集的地方。 4. 编写您的第一个PyTorch Lightning程序:您可以从一个简单的例子开始,例如MNIST手写数字识别。在这个例子中,您可以定义一个LightningModule来构建神经网络,定义一个DataModule来加载数据集,然后定义一个Trainer来训练模型。 5. 学习如何自动分布式训练:PyTorch Lightning可以自动进行分布式训练,这意味着您可以在多个GPU或多台计算机上训练模型。您只需要在Trainer中设置一些参数即可。 6. 学习如何自动检查点和日志记录:PyTorch Lightning可以自动保存检查点和记录日志,这使得您可以在训练过程中随恢复模型并查看训练指标。 7. 学习如何使用PyTorch Lightning扩展您的研究:PyTorch Lightning提供了许多扩展功能,例如自动优化器、自动批量大小调整、自动对抗性训练等等。您可以使用这些功能来扩展您的研究。 总之,PyTorch Lightning是一个非常强大的工具,可以使训练神经网络更加容易和高效。如果您想提高您的PyTorch技能并加快训练过程,请考虑学习PyTorch Lightning

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iioSnail

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值