python - 如何禁用 tqdm 的进度条并仅保留 Pytorch Lightning(或一般的 tqdm)中的文本信息

标签 python pytorch progress-bar tqdm pytorch-lightning

我正在研究 Pytorchlightning,tqdm 的进度条有很多问题,它不断地从短到长来回调整大小,让阅读日志文本变得非常不愉快,我意识到进度条并不是真正必要的,我只想保留当前epoch、当前batch、accuracy、loss等信息

根据我的搜索,您似乎可以禁用整个 tqdm 显示(进度条和文本),但我如何才能有选择地仅禁用进度条而不禁用文本?

最佳答案

tqdm 禁用“仪表”(同时保留统计显示)的方法是设置 ncols=0dynamic_ncols=False (参见 tqdm documentation)。

pytorch_lightning 中自定义默认进度条行为的方法是传递自定义 ProgressBar在构建 Trainer 时作为回调。

将两者放在一起,如果你想在训练期间修改进度条,你可以执行如下操作:

import pytorch_lightning as pl
from pytorch_lightning.callbacks import ProgressBar


class MeterlessProgressBar(ProgressBar):

    def init_train_tqdm(self):
        bar = super().init_train_tqdm()
        bar.dynamic_ncols = False
        bar.ncols = 0
        return bar

bar = MeterlessProgressBar()
trainer = pl.Trainer(callbacks=[bar])

您可以通过重写:init_sanity_tqdminit_predict_tqdminit_validation_tqdm 分别自定义健全性检查、预测、验证和测试code>init_test_tqdm 分别。 (如果您想要一种快速而肮脏的方式对所有进度条执行某些操作,您可以考虑改写 _update_bar 方法。)

关于python - 如何禁用 tqdm 的进度条并仅保留 Pytorch Lightning(或一般的 tqdm)中的文本信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68427465/

相关文章:

python - 如何在黄砖图中设置图形大小?

android - Kivy:从主应用程序停止 android 服务

python - 从文件的列表/行中收集所有其他字符串

python - 为什么用 % 十六进制化字符串比用 f 字符串十六进制化更快?

image - 在同一图像张量上两次使用 torchvision.utils.save_image 会使第二次保存无效。这是怎么回事?

wpf - 自定义平面进度条

python - 使用生成器作为进度通知程序

pytorch - 如何同时将多个张量移动到 Cuda 设备?

deep-learning - Pytorch 中正确的验证损失?

java - 是否可以使用 SWT 显示默认的 Windows 进度对话框