我正在使用Pytorchlightning,但是tqdm的进度条很不稳定,它一直在从短到长来回调整大小,使得阅读日志文本变得非常不愉快。我意识到进度条并不是必须的,只想保留有关当前epoch、当前batch、准确性、损失等信息的文本。
通过我的搜索,似乎可以禁用整个tqdm显示(包括进度条和文本),但我该如何选择性地禁用进度条而不禁用文本呢?
我正在使用Pytorchlightning,但是tqdm的进度条很不稳定,它一直在从短到长来回调整大小,使得阅读日志文本变得非常不愉快。我意识到进度条并不是必须的,只想保留有关当前epoch、当前batch、准确性、损失等信息的文本。
通过我的搜索,似乎可以禁用整个tqdm显示(包括进度条和文本),但我该如何选择性地禁用进度条而不禁用文本呢?
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
方法。)
python script.py --arg1 val1 2>/dev/null
将stderr重定向到/dev/null。这应该小心谨慎地进行,因为这样做可能会导致你无法看到潜在的错误信息。 - jhso