我收到以下错误:
You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.
Traceback (most recent call last):
File "./run_hyperparameter_search.py", line 74, in <module>
trainer = Trainer(
File "/ext3/miniconda3/lib/python3.8/site-packages/transformers/trainer.py", line 273, in __init__
model = self.call_model_init()
File "/ext3/miniconda3/lib/python3.8/site-packages/transformers/trainer.py", line 737, in call_model_init
raise RuntimeError("model_init should have 0 or 1 argument.")
RuntimeError: model_init should have 0 or 1 argument.
~ 这是我在我的拥抱面孔训练器中所说的:
#Initialising the model
trainer = Trainer(
args = training_args,
tokenizer = tokenizer,
train_dataset = train_data,
eval_dataset = val_data,
# maybe there is a () in the init, but not in compute metrics for sure. Will test
model_init = finetuning_utils.model_init(),
compute_metrics = finetuning_utils.compute_metrics,
)问题显然出在model_init中。
下面是finetuning_utils.model_init()包含的内容:
def model_init():
"""Returns an initialized model for use in a Hugging Face Trainer."""
## TODO: Return a pretrained RoBERTa model for sequence classification.
## See https://huggingface.co/transformers/model_doc/roberta.html#robertaforsequenceclassification.
model = RobertaForSequenceClassification.from_pretrained("roberta-base")
#model = model.to('cuda')
return model请帮助解决此错误。
发布于 2021-04-17 18:33:57
从Huggingface trainer docs看起来,model_init接受了一个可调用的。因此,它不应该实例化参数,而应该接受可调用参数本身,即不带括号:
model_init = finetuning_utils.model_init或者,您可以删除model_init并使用model参数来达到与finetuning_utils.model_init中包含的代码相同的效果,如下所示:
model = RobertaForSequenceClassification.from_pretrained("roberta-base")https://stackoverflow.com/questions/66828699
复制相似问题