【发布时间】:2021-07-27 15:05:49
【问题描述】:
我想在分类层之前添加一个额外的层(和 dropout)(我正在使用 PyTorch 闪电)最好的方法是什么?
【问题讨论】:
标签: text-classification bert-language-model pytorch-lightning
我想在分类层之前添加一个额外的层(和 dropout)(我正在使用 PyTorch 闪电)最好的方法是什么?
【问题讨论】:
标签: text-classification bert-language-model pytorch-lightning
BertForSequenceClassification 类(来自 Huggingface Transformers when using PyTorch lightning)实现了固定架构。如果你想改变它(例如,通过添加层),你需要继承你自己的模块。
这其实很简单。可以复制BertForSequenceClassification的代码,修改between getting the pooled BERT output and getting the logits的代码。
但请注意,在微调 BERT 时,向分类器添加隐藏层并没有太大区别。与整个 BERT 层堆栈相比,附加隐藏层的容量可以忽略不计。即使您无法微调整个模型,仅微调最后一个 BERT 层也可能比在分类器中添加额外的层更好。
【讨论】: