如何解决如何禁用 tqdm 的进度条并仅保留 Pytorch Lightning 中的文本信息或一般在 tqdm 中
我正在研究 Pytorchlightning 并且 tqdm 的进度条非常有问题,它不断地从短到长来回调整大小,使阅读日志文本变得如此不愉快,我意识到进度条并不是真正必要的,只想保留有关当前时期、当前批次、准确性、损失等的信息。
从我的搜索来看,您似乎可以禁用整个 tqdm 显示(进度条和文本),但是如何有选择地仅禁用进度条而不禁用文本?
解决方法
禁用“仪表”(同时保留统计数据显示)的 tqdm
方法是设置 ncols=0
和 dynamic_ncols=False
(参见 tqdm documentation)。
在 pytorch_lightning
中自定义默认进度条行为的方法是在构建 Trainer
时将自定义 ProgressBar
作为回调传入。
将两者放在一起,如果您想在训练期间修改进度条,您可以执行以下操作:
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_tqdm
、init_predict_tqdm
、init_validation_tqdm
和init_test_tqdm
来分别自定义健全性检查、预测、验证和测试。 (如果您想以一种快速而肮脏的方式对所有进度条执行某些操作,您可以考虑重写 _update_bar
方法。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。