Python 使用Transformers框架对序列分类进行微调

Python 使用Transformers框架对序列分类进行微调,python,nlp,bert-language-model,huggingface-transformers,Python,Nlp,Bert Language Model,Huggingface Transformers,我目前正在一项序列分类任务中微调一个伯特模型。为此,我使用了transformers框架。这需要在培训师中进行批量输入: 以下介绍了微调的工作方式: 我认为批处理需要看起来像是我创建的,但由于某些原因,我不断出现错误。图中显示了数据集中的单个项目 如果我将标签添加为张量,则模型中将标签转换为张量的部分会出现错误。但当我添加标签作为列表时,我得到:预期输入批次大小(16)与目标批次大小(2016)匹配。 给伯特模型一个批次的正确方法是什么 以下是我初始化模型的方式: training\u arg

我目前正在一项序列分类任务中微调一个伯特模型。为此,我使用了transformers框架。这需要在培训师中进行批量输入:

以下介绍了微调的工作方式: 我认为批处理需要看起来像是我创建的,但由于某些原因,我不断出现错误。图中显示了数据集中的单个项目

如果我将标签添加为张量,则模型中将标签转换为张量的部分会出现错误。但当我添加标签作为列表时,我得到:预期输入批次大小(16)与目标批次大小(2016)匹配。 给伯特模型一个批次的正确方法是什么

以下是我初始化模型的方式:

training\u args=TrainingArguments(
输出目录_dir='C:',#输出目录
num_train_epochs=3,#训练时期总数
每台设备每列批量大小=16,培训期间每台设备的批量大小
每台设备评估批量大小=64,评估批量大小
预热步骤=500,#学习速率计划程序的预热步骤数
重量衰减=0.01,#重量衰减强度
日志记录_dir='C:',#用于存储日志的目录
记录步骤=10,
)
标记器=BertTokenizer.from_pretrained('bert-base-uncased'))
模型=BertForSequenceClassification.from_pretrained(“bert base uncased”)
数据\u collator=DataCollatorForTokenClassification(标记器)
教练(

model=model,#实例化的I已删除您的[]标记。没有显示批处理文件代码,也没有提到批处理文件。请将鼠标悬停在标记上,阅读它们的说明,然后只选择与您的问题相关的标记。错误是什么?我认为您的错误是您混淆了序列分类和令牌分类。对于序列分类,您只提供一个标签,而您为令牌分类任务提供了#令牌标签。@cronoik您是对的。感谢您发现了这个愚蠢的错误。现在我可以在使用BertFortokeClassification时解决其他错误:)