You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在DARTs中抑制PyTorch Lightning的日志输出

解决Darts predict循环调用重复输出设备信息的问题

我明白你遇到的麻烦——每次调用predict都输出一遍GPU/TPU设备信息,循环100次就刷100遍,确实很烦人。Darts底层依赖PyTorch Lightning,每次predict时可能会重新初始化Lightning的训练器组件,导致这些日志重复打印。下面几个方案应该能帮你解决:

方案1:初始化模型时传入Trainer参数抑制日志

在创建NBEATSModel(或其他Darts模型)时,通过trainer_kwargs传入PyTorch Lightning Trainer的配置,直接关闭日志和冗余输出组件:

from darts.models import NBEATSModel
import torchmetrics

model3 = NBEATSModel(
    input_chunk_length=20,
    output_chunk_length=1,
    n_epochs=50,
    torch_metrics=torchmetrics,
    # 配置Trainer参数,抑制日志输出
    trainer_kwargs={
        "logger": False,
        "enable_model_summary": False,
        "enable_progress_bar": False,
        "enable_checkpointing": False
    }
)

这个方法从模型初始化阶段就阻止了Lightning生成那些设备状态日志,是最直接的解决方式。

方案2:全局调整PyTorch Lightning日志级别

如果方案1没完全生效,你可以全局把PyTorch Lightning的日志级别调到ERROR,只保留严重错误信息:

import logging
# 抑制PyTorch Lightning的INFO级日志
logging.getLogger("pytorch_lightning").setLevel(logging.ERROR)
logging.getLogger("pytorch_lightning.utilities.rank_zero").setLevel(logging.ERROR)

把这段代码放在导入Darts和PyTorch Lightning的代码之后,就能过滤掉那些重复的设备状态提示。

方案3:调整Darts自身的日志设置

Darts也有独立的日志体系,你可以直接把它的日志级别设为ERROR,进一步减少冗余输出:

import logging
import darts
darts.logging.set_logging_level(logging.ERROR)

这个可以和方案2配合使用,形成双重保险。

验证效果

修改后再运行你的循环代码,那些重复的GPU/TPU设备信息应该就不会再出现了。如果还有残留日志,可以检查是否有其他依赖库的日志源,但通常上面的方案足够解决问题。

内容的提问来源于stack exchange,提问作者Josh Purtell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 18:45:47