这个问题通常出现在使用Hugging Face进行BERT分类调整时。解决方式是将forward函数中的返回值语句进行修改。具体来说,需要将原来的返回值语句“return {'logits': logits}”改为“return logits”。示例代码如下:
class BertForClassification(BertPreTrainedModel):
def __init__(self, config):
super().__init__(config)
self.bert = BertModel(config)
self.dropout = nn.Dropout(config.hidden_dropout_prob)
self.classifier = nn.Linear(config.hidden_size, config.num_labels)
self.init_weights()
def forward(
self,
input_ids=None,
attention_mask=None,
token_type_ids=None,
):
outputs = self.bert(
input_ids,
attention_mask=attention_mask,
token_type_ids=token_type_ids,
)
pooled_output = outputs[1]
pooled_output = self.dropout(pooled_output)
logits = self.classifier(pooled_output)
return logits # 原来为“return {'logits': logits}”需要改为“return logits”
(注意:在修改完成后,需要对代码进行重新训练。)