当前位置:   article > 正文

BERT+BiLSTM+CRF预测值全是同一个标签问题(即预测为0)_tinybert+bilstm+crf

tinybert+bilstm+crf

        记录一下困扰了我几乎五天的问题,最近手撸了一个BERT+BiLSTM+CRF的代码,在构建之时最难的就是train和dataload,model模块基本都有现成的很快就写好了。但之后却出现了一个问题,我使用的数据集是huggingface的weibo_ner_knowledge_V3_wc数据集,其中用于标识无关内容的标签16占了多数。果不其然,跑了好几次,每次模型最后都只会预测标签16,其他标签都不会预测,给人感觉是模型觉得只预测16便能得到很高的准确率所以它只预测16。

        但你这耍我呢,我肯定要你预测其他标签呀,所以这几天疯狂检查,model和dataload基本都重置了一次问题依旧存在。(但这里也要注意,使用了huggingface的berttokenizer处理文本时返回内容会自动添加起始符和结束符标签,那label也要做相应的处理标识出起始符和结束符)搞了那么多天无用功,结果今天我不小心把batch_size和学习率调小了居然跑通了,它居然能基本正确预测出实体标签了。就现在而言我只能认为是这个数据集中含有很多标签16,甚至有些样例全是16,导致模型学习时出现了问题。所以现在把我的解决方案放在这里,希望能和广大网友探讨下这个问题。

        源码发布在gitee:https://gitee.com/sky-zhu-chang/bert_lstm_crf.git

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/829981
推荐阅读
相关标签
  

闽ICP备14008679号