簡體   English   中英

pytorch 閃電“得到了一個意外的關鍵字參數'weights_summary'”

[英]pytorch lightning "got an unexpected keyword argument 'weights_summary'"

在 anaconda spyder 5.1.5 中嘗試學習谷歌“時間融合變換器”算法時,我一直在處理錯誤。 伙計們,解決這個錯誤對我來說非常重要。 應該有人說些什么。 我會很高興。 我在下面的鏈接中使用的示例;

https://pytorch-forecasting.readthedocs.io/en/latest/tutorials/stallion.html

例如,當我運行下面提到的代碼時,出現錯誤

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'

代碼有什么問題? 請問有人可以幫我嗎?

所以,我和你有同樣的問題。

我建議您在代碼中找出“weights_suammry”變量

我使用 .yaml 文件並使用 hydra 自動放置 pytorch_lightning.Trainer 的參數也使用 strategy=DDPStrategy(find~)

我剛剛意識到 weights_summary in.yaml 文件,

結構是

trainer:
 _target_: ~~
 ~~:
 weights_summary : "top"

然后我刪除了它的 weights_summary 並且 plobloms 已經解決了

從 Pytorch-Lightning 版本 1.7.0 開始刪除了weights_summary參數。 請在此處查看拉取請求 作為替代方法,使用參數enable_model_summary ,如文檔中所述

我認為您從 conda-forge 安裝了 pytorch-forecasting。 conda-forge 的當前版本是 v0.10.2,而 pip 的當前版本是 v0.10.3。 請參閱https://github.com/jdb78/pytorch-forecasting 他們在 v0.10.3 中解決了這個問題。 所以你可以用 pip 重新安裝它或者降級 pytorch-lightning,比如

conda remove pytorch-lightning
conda install pytorch-lightning=1.6.4 -c conda-forge
conda remove pytorch-forecasting
conda install pytorch-forecasting -c conda-forge

作為臨時措施,有一種方法可以直接修改安裝的庫文件。

在我的例子中,文件/opt/conda/lib/python3.7/site-packages/pytorch_forecasting/models/temporal_fusion_transformer/tuning.py的第 147 行

weights_summary=[None, "top"][optuna_verbose < optuna.logging.INFO] ,

修改如下。

enable_model_summary=[None, "top"][optuna_verbose < optuna.logging.INFO],

因此,您使用的 pytorch_lightning 版本似乎存在不兼容問題。 您的版本可能太高級了。

我使用的是 pytorch_ligtning v1.5 和 0.10.2 的 pytorch_forecasting,它可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM