Huggingface Trainer 抛出一个 AttributeError:'Namespace' object has no attribute 'get_process_log_level

问题描述 投票:0回答:1

我正在尝试使用参数解析器从 Hugging face(pytorch) 运行 Trainer。我的代码看起来像

if __name__ == '__main__':
    parser = HfArgumentParser(TrainingArguments)
    parser.add_argument('--model_name_or_path', type=str, required=True)
    .
    .
    .   
    .


    training_args = parser.parse_args()

    print('args', training_args)

    os.makedirs(training_args.output_dir, exist_ok=True)

    random.seed(training_args.seed)
    
    set_seed(training_args.seed)

    dataset_train = ...

    .
    .
    .


    trainer = Trainer(
        model=model,
        args=training_args,
        train_dataset=train_dataloader,
        eval_dataset=val_dataloader)

    trainer.train()

我收到以下错误:

    Traceback (most recent call last):
    File "main.py", line 250, in <module>
    eval_dataset=val_dataloader)
    File "C:\User\transformer\lib\site- 
    packages\transformers\trainer.py", line 316, in __init__
    log_level = args.get_process_log_level()
    AttributeError: 'Namespace' object has no attribute 'get_process_log_level

关于这个错误以及如何解决它的任何想法?

python deep-learning pytorch nlp huggingface-transformers
1个回答
1
投票

首先检查这是否适合您:

from transformers import TrainingArguments

args = TrainingArguments(output_dir='./')
args.get_process_log_level()

[出]:

20

如果不是,那么很可能您在

transformers
上的
C:\User\transformer\lib\site-packages\transformers
版本与您拥有的 Trainer 脚本不匹配。然后尝试升级你的变形金刚版本
pip install -U transformers
.


如果你得到了

20
输出但是当你运行你的脚本时你得到了错误,那么很可能你的变形金刚的版本来自以前的版本,它在
get_process_log_level()
中没有
TrainingArguments
作为一个属性。

在代码顶部添加这一行并检查

import sys; print(sys.executable)

你会得到类似的东西

[出]:

C://something/somewhere/bin/python

并以此将库升级到正确的站点包位置和 python 二进制文件

C://something/somewhere/bin/python -m pip install -U transformers

升级后脚本应该运行。

© www.soinside.com 2019 - 2024. All rights reserved.