我正在尝试使用参数解析器从 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
关于这个错误以及如何解决它的任何想法?
首先检查这是否适合您:
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
升级后脚本应该运行。