mohoho

  • 2

    获得赞
  • 0

    发布的文章
  • 1

    答辩的项目

医疗文本分类赛后答辩

Batch大小为50,循环次数为8次,损失函数优化完,最终完成评分为83.27。

医疗文本分类
BERT TensorFlow 文本分类
最后更新 2020/05/11 11:44 阅读 581

医疗文本分类

最后更新 2020/05/11 11:44

阅读 581

BERT TensorFlow 文本分类

一、赛题分析

 本赛题是一个文本的多分类问题,一般来说这种问题,都可以交给bert来解决 数据的特点在于: 

 1. 需要分类的label较多 

 2. 各个类别的样例数不均衡,样例最多的妇产科是第二多的神经科的2.5倍,更是样例最少的数百倍 

3. 所给数据非常漂亮,省去了许多数据预处理

 二、 核心思路 

 选用模型

 BERT: BERT的全称是Bidirectional Encoder Representation from Transformers,即双向Transformer的Encoder,因为decoder是不能获要预测的信息的。模型的主要创新点都在pre-train方法上,即用了Masked LM和Next Sentence Prediction两种方法分别捕捉词语和句子级别的representation。 Transformer所使用的注意力机制的核心思想是去计算一句话中的每个词对于这句话中所有词的相互关系,然后认为这些词与词之间的相互关系在一定程度上反应了这句话中不同词之间的关联性以及重要程度。 

 参数设置: 

参数数值
train_batch_size
50
num_train_epochs

max_seq_length
256
learning_rate
5e-5
num_train_steps
EPOCHS * steps_per_epoch
warmup_steps
0.3*num_train_steps
beta_1
0.9
beta_2
0.999
epsilon
1e-6
weight_decay_rate
0.01

参数调整 

 选用本地最优max_seq_length,256 

将epoch从3调整为8,提升了模型准确率 

三、比赛经验总结 

 通过这个比赛中,我学会了: 

 (1)线上安装的tensorflow2.1-gpu无法使用gpu加速,但安装的tensorflow2.0-gpu可以成功使用gpu加速。可能是tf2.1和tf2.0对应的cuda版本不同。 

(2)模型预测时候,如果使用tf.keras的model.predict方法可能会预测失败,于是参考了transformers/examples/run_tf_glue.py中的代码,使用pytorch框架的代码进行模型预测。 

(3)学会了在运行tensorflow程序时候动态分配GPU显存,防止显存溢出导致预测失败。 

(4)学会了参考榜单上其他高分模型使用的batch_size和epochs。 

(5)阅读huggingface/transformers/optimization_tf.py,并添加了新功能,给优化器的学习率添加了linear_cosine,cosine,linear衰减,可以指定开始与结束的学习率。

本文为作者在FlyAI平台发布的原创内容,采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,转载请附上原文出处链接和本声明。
本文链接地址:https://www.flyai.com/n/132224
立即参加 医疗文本分类
代码展示

BERT TensorFlow 文本分类

选择查看文件
$vue{codeKeys}
  • $vue{ix}
赞赏贡献者还可以查看和下载优质代码内容哦!
赞赏 ¥70.00元
©以上内容仅用于在FlyAI平台交流学习,禁止转载、商用;违者将依法追究法律责任。
讨论
500字
表情
每日参与讨论奖励 20FAI
发送
每日参与讨论奖励 20FAI
删除确认
是否删除该条评论?
取消 删除
感谢您的关注
该篇内容公开后我们将会给你推送公开通知
好的
发布成功!
您的公开申请已发送至后台审核,
通过后将公开展示本详情页!
知道了
向贡献者赞赏
¥70.00
微信支付
支付宝

请先绑定您的微信账号 点击立即绑定

立即支付
温馨提示:
支付成功后不支持申请退款,请理性消费;
支付成功将自动解锁当前页面代码内容,付款前请确认账号信息。
微信扫码支付
请前往Web网页进行支付

敬请谅解,如有疑问请联系FlyAI客服

知道了
举报
请选择举报理由
确定
提示
确定要删除?
取消删除