首页 > 解决方案 > 如何使用 RoBERTa 执行多输出回归?

问题描述

我有一个问题陈述,我想使用文本输入预测多个连续输出。我尝试使用 HuggingFace 库中的“robertaforsequenceclassification”。但是文档指出,当最后一层的输出数量超过 1 时,会自动使用交叉熵损失,如此处所述:https ://huggingface.co/transformers/v2.2.0/model_doc/bert.html#变压器.BertForSequenceClassification。但我想在最后一层有两个类的回归设置中使用 RMSE 损失。怎么去修改它?

标签: pytorchregressionhuggingface-transformersbert-language-model

解决方案


BertForSequenceClassification是一个小包装器,用于包装BERTModel.

它调用模型,获取池化输出(输出元组的第二个成员),并对其应用分类器。代码在这里https://github.com/huggingface/transformers/blob/master/src/transformers/modeling_bert.py#L1168

最简单的解决方案是编写您自己的简单包装类(基于BertForSequenceClassification类)帽子将执行回归,该回归将以您喜欢的损失进行回归。


推荐阅读