首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何规范BERT分类器的输出

如何规范BERT分类器的输出
EN

Stack Overflow用户
提问于 2020-07-27 09:58:30
回答 1查看 699关注 0票数 2

我用HuggingFace transformers.TFBertForSequenceClassification分类器训练了伯特分类器。它工作得很好,但是当使用model.predict()方法时,它给出了一个元组作为输出,在0,1,例如,我训练模型将新闻文章分类为欺诈和非欺诈类别。然后,我将以下4个测试数据输入到模型中进行预测:

代码语言:javascript
复制
articles = ['He was involved in the insider trading scandal.', 
            'Johnny was a good boy. May his soul rest in peace', 
            'The fraudster stole money using debit card pin', 
            'Sun rises in the east']

产出如下:

代码语言:javascript
复制
[[-2.8615277,  2.6811066],
 [ 2.8651822, -2.564444 ],
 [-2.8276567,  2.4451752],
 [ 2.770451 , -2.3713884]]

对我来说标签-0代表非欺诈,标签-1代表欺诈,所以效果很好。但从现在开始,我该如何准备得分信心呢?在这种情况下,使用softmax进行规范化是否有意义?此外,如果我想看看那些预测,在模型是有点优柔寡断,我怎么做呢?在这种情况下,这两个值会非常接近吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-26 05:08:09

是。你可以使用softmax。更准确地说,使用argmax超过softmax来获得像0或1这样的标签预测。

代码语言:javascript
复制
y_pred = tf.nn.softmax(model.predict(test_dataset))
y_pred_argmax = tf.math.argmax(y_pred, axis=1)

当我有同样的查询时,这个博客对我很有帮助。

为了回答你的第二个问题,我想让你把重点放在你的分类模型错误分类的测试实例上,而不是试图找出模型走向优柔寡断的地方。

因为,argmax总是返回0或1,而不返回0.5。而且,我想说,标签0.5将是适当的价值,声称你的模型是优柔寡断。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63112907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档