小编hhp*_*hhp的帖子

微调 BERT 情感分析时过度拟合

总的来说,我是机器学习的新手。我目前正在尝试使用 BERT 和 Transformers 进行情感分析的教程https://curiousily.com/posts/sentiment-analysis-with-bert-and-hugging-face-using-pytorch-and-python/

然而,当我训练模型时,模型似乎过度拟合 训练/验证损失和准确性

我不知道如何解决这个问题。我尝试过减少纪元数量、增加批量大小、重新整理我的数据(已排序)并增加验证拆分。到目前为止还没有任何效果。我什至尝试过改变不同的学习率,但我现在使用的是最小的。

下面是我的代码:

PRE_TRAINED_MODEL_NAME = 'TurkuNLP/bert-base-finnish-cased-v1'
tokenizer = BertTokenizer.from_pretrained(PRE_TRAINED_MODEL_NAME)

MAX_LEN = 40

#Make a PyTorch dataset
class FIDataset(Dataset):

  def __init__(self, texts, targets, tokenizer, max_len):

    self.texts = texts

    self.targets = targets

    self.tokenizer = tokenizer

    self.max_len = max_len

  def __len__(self):

    return len(self.texts)

  def __getitem__(self, item):

    text = str(self.texts[item])

    target = self.targets[item]

    encoding = self.tokenizer.encode_plus(

      text,

      add_special_tokens=True,

      max_length=self.max_len,

      return_token_type_ids=False,

      pad_to_max_length=True,

      return_attention_mask=True,

      return_tensors='pt',

    )

    return {

      'text': text,

      'input_ids': encoding['input_ids'].flatten(),

      'attention_mask': encoding['attention_mask'].flatten(),

      'targets': torch.tensor(target, dtype=torch.long)

    }

#split test …
Run Code Online (Sandbox Code Playgroud)

python sentiment-analysis bert-language-model huggingface-transformers overfitting-underfitting

5
推荐指数
1
解决办法
1万
查看次数