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

PyTorch Lightning报'weights_summary'意外关键字参数错误求助

问题

在Anaconda Spyder 5.1.5环境中学习Temporal Fusion Transformer算法时,运行pytorch-forecasting官方Stallion教程中的调参代码触发错误。

执行代码:

study = optimize_hyperparameters(
    train_dataloader,
    val_dataloader,
    model_path="optuna_test",
    n_trials=200,
    max_epochs=50,
    gradient_clip_val_range=(0.01, 1.0),
    hidden_size_range=(8, 128),
    hidden_continuous_size_range=(8, 128),
    attention_head_size_range=(1, 4),
    learning_rate_range=(0.001, 0.1),
    dropout_range=(0.1, 0.3),
    trainer_kwargs=dict(limit_train_batches=30),
    reduce_on_plateau_patience=4,
    use_learning_rate_finder=False  # use Optuna to find ideal learning rate or use in-built learning rate finder
)

报错信息:

A new study created in memory with name: no-name-fe7e21ce-3034-4679-b60a-ee4d5c9a4db5
[W 2022-10-21 19:36:49,382] Trial 0 failed because of the following error: TypeError("__init__() got an unexpected keyword argument 'weights_summary'")
Traceback (most recent call last):
  File "C:\Users\omer\anaconda3\lib\site-packages\optuna\study\_optimize.py", line 196, in _run_trial
    value_or_values = func(trial)
  File "C:\Users\omer\anaconda3\lib\site-packages\pytorch_forecasting\models\temporal_fusion_transformer\tuning.py", line 150, in objective
    trainer = pl.Trainer(
  File "C:\Users\omer\anaconda3\lib\site-packages\pytorch_lightning\utilities\argparse.py", line 345, in insert_env_defaults
    return fn(self, **kwargs)
TypeError: __init__() got an unexpected keyword argument 'weights_summary'
Traceback (most recent call last):

  Input In [3] in <cell line: 1>
    study = optimize_hyperparameters(

  File ~\anaconda3\lib\site-packages\pytorch_forecasting\models\temporal_fusion_transformer\tuning.py:217 in optimize_hyperparameters
    study.optimize(objective, n_trials=n_trials, timeout=timeout)

  File ~\anaconda3\lib\site-packages\optuna\study\study.py:419 in optimize
    _optimize(

  File ~\anaconda3\lib\site-packages\optuna\study\_optimize.py:66 in _optimize
    _optimize_sequential(

  File ~\anaconda3\lib\site-packages\optuna\study\_optimize.py:160 in _optimize_sequential
    frozen_trial = _run_trial(study, func, catch)

  File ~\anaconda3\lib\site-packages\optuna\study\_optimize.py:234 in _run_trial
    raise func_err

  File ~\anaconda3\lib\site-packages\optuna\study\_optimize.py:196 in _run_trial
    value_or_values = func(trial)

  File ~\anaconda3\lib\site-packages\pytorch_forecasting\models\temporal_fusion_transformer\tuning.py:150 in objective
    trainer = pl.Trainer(

  File ~\anaconda3\lib\site-packages\pytorch_lightning\utilities\argparse.py:345 in insert_env_defaults
    return fn(self, **kwargs)

TypeError: __init__() got an unexpected keyword argument 'weights_summary'

问题原因分析

该错误由版本不兼容导致:

  • pytorch-forecasting的tuning.py代码默认会给pl.Trainer传入weights_summary参数
  • 当前安装的PyTorch Lightning(pl)版本已移除weights_summary参数(该参数在PyTorch Lightning 2.0+版本中被废弃)

解决方案

有两种可行解决办法:

方法1:降级PyTorch Lightning到兼容版本

安装仍支持weights_summary参数的PyTorch Lightning版本,例如1.9.x系列:

pip install pytorch-lightning==1.9.5

方法2:覆盖默认参数,禁用weights_summary

在调用optimize_hyperparameters时,通过trainer_kwargs显式传入weights_summary=None,覆盖默认值:

study = optimize_hyperparameters(
    train_dataloader,
    val_dataloader,
    model_path="optuna_test",
    n_trials=200,
    max_epochs=50,
    gradient_clip_val_range=(0.01, 1.0),
    hidden_size_range=(8, 128),
    hidden_continuous_size_range=(8, 128),
    attention_head_size_range=(1, 4),
    learning_rate_range=(0.001, 0.1),
    dropout_range=(0.1, 0.3),
    trainer_kwargs=dict(limit_train_batches=30, weights_summary=None),  # 新增参数覆盖默认值
    reduce_on_plateau_patience=4,
    use_learning_rate_finder=False
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 22:15:51