小编Gui*_*lau的帖子

Transformers 中的 BertForSequenceClassification 大小不匹配和多类问题

我刚刚在由电子商务网站的产品和标签(部门)组成的数据集上训练了 BERT 模型。这是一个多类问题。我使用 BertForSequenceClassification 来预测每个产品的部门。我将其分为训练和评估,我使用了 pytorch 的数据加载器,并且我得到了很好的分数,没有过度拟合。

现在我想在新的数据集上尝试它,以检查它如何处理看不见的数据。但我无法加载模型并应用于新数据集。我收到以下错误:

RuntimeError: Error(s) in loading state_dict for BertForSequenceClassification:
    size mismatch for classifier.weight: copying a param with shape torch.Size([59, 1024]) from checkpoint, the shape in current model is torch.Size([105, 1024]).
    size mismatch for classifier.bias: copying a param with shape torch.Size([59]) from checkpoint, the shape in current model is torch.Size([105]).
Run Code Online (Sandbox Code Playgroud)

我发现问题可能是两个数据集之间的标签大小不匹配。我进行了一些搜索,找到了使用ignore_mismatched_sizes=Trueas 和 argument for 的建议pretrained。但我不断收到同样的错误。

这是我尝试预测看不见的数据时的代码的一部分:

from transformers import BertForSequenceClassification

# Just right before the actual usage select your hardware
device …
Run Code Online (Sandbox Code Playgroud)

python deep-learning pytorch bert-language-model huggingface-transformers

6
推荐指数
1
解决办法
7617
查看次数