使用 gpt2 的预训练模型时,meanloss = loss.mean(),但发生此错误:属性错误:'str'对象没有属性'mean'



在训练中,我试图找到平均损失,但我犯了一个错误

loss, logits, _ = model(data1, labels=target1)
meanloss = loss.mean()
total_loss += meanloss
meanloss.backward()
optimizer.step()

那么,这就是错误

AttributeError: 'str' object has no attribute 'mean'

这一定是您的模型造成的。你能展示你定义的模型吗?

这里有一个例子:

>>> import torch
>>> from transformers import GPT2Tokenizer, GPT2LMHeadModel
>>> tokenizer = GPT2Tokenizer.from_pretrained('gpt2')
>>> model = GPT2LMHeadModel.from_pretrained('gpt2')
>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
>>> outputs = model(**inputs, labels=inputs["input_ids"])
>>> loss, logits = outputs[:2]

相关内容

最新更新