如何在 BertForSequenceClassification 之上添加额外的密集层?

How to add extra dense layer on top of BertForSequenceClassification?

我想在分类层之前添加一个额外的层(和 dropout)(我使用的是 PyTorch lightning)最好的方法是什么?

class BertForSequenceClassification (that comes from the Huggingface Transformers when using PyTorch lightning) 实现了一个固定的架构。如果你想改变它(例如,通过添加层),你需要继承你自己的模块。

这个其实很简单。可以复制BertForSequenceClassification的代码,修改between getting the pooled BERT output and getting the logits.

的代码

但是请注意,在微调 BERT 时,将隐藏层添加到 classifier 并没有太大区别。与整个 BERT 层堆栈相比,附加隐藏层的容量可以忽略不计。即使您无法微调整个模型,仅微调最后一个 BERT 层也可能比向 classifier 添加一个额外层更好。