![](/img/trans.png)
[英]PyTorch BERT TypeError: forward() got an unexpected keyword argument 'labels'
[英]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.