如何禁用 PyTorch-Lightning 记录器的日志记录?

How to disable logging from PyTorch-Lightning logger?

PyTorch-Lightning 中的 Logger 打印有关要训练(或评估)的模型的信息以及训练过程中的进度,

但是,在我的例子中,我想隐藏来自记录器的所有消息,以免淹没 Jupyter Notebook 中的输出。

我在官方文档页面 https://pytorch-lightning.readthedocs.io/en/latest/common/trainer.html#trainer-flags 上查看了 Trainer class 的 API,似乎没有选项可以关闭来自记录器的消息.

有个参数log_every_n_steps可以设置大值,但是还是会显示每个epoch后的logging结果

如何禁用日志记录?

也许这样试试?

logging.getLogger("包").propagate = False

解决方案结合了@Artyrm Sergeev 的建议和此处建议的答案 。

  1. 获取所有 pytorch_lightning 个记录器:

    pl_loggers = [ logging.getLogger(姓名) logging.root.manager.loggerDict 中的名称 如果名称中有 'pytorch_lightning' ]

  2. trainer.fit放在下面的结构中:

    使用 io.capture_output() 捕获:trainer.fit(...)

我假设在泛洪输出流方面有两件事特别困扰您:

一、《权重汇总》:

  | Name | Type   | Params
--------------------------------
0 | l1   | Linear | 100 K 
1 | l2   | Linear | 1.3 K 
--------------------------------
...

二、进度条:

Epoch 0:  74%|███████████   | 642/1874 [00:02<00:05, 233.59it/s, loss=0.85, v_num=wxln]

PyTorch Lightning 提供了非常清晰和优雅的关闭它们的解决方案:Trainer(progress_bar_refresh_rate=0) 用于关闭进度条和 Trainer(weights_summary=None) 用于关闭重量摘要。