LSTM模型训练精准率高测试精准率很低解决办法

       前段时间训练一个问答模型(QA)时,发现一个有趣的问题,模型采用LSTM技术,encode-decode架构(见下图)。使用小语料集训练,测试精准率还行,当语料集达到2000组时,问题来了,训练精准率很高,但测试精准率非常低。

小语料集与大语料集测试精准率对比:

 

 

       测试精准率低的让人有点伤心,训练集增多,除了batch_size改大,其它没有修改呀,感觉一点思路都没有了,被这个坑卡住了3天,毫无进展。某天,正看着窗外的爬山虎发呆,突然想起培训老师说过,“数据是一批一批训练的,训练完一批数据以后才更新一次梯度”,一批一批训练,这个场景和成语“滥竽充数”很像呀。训练时是一批一批的训练,更新梯度依据的是这一批数据的平均loss值,单条对话的差异给抹平了,但测试一条条对话进行的,就好比南郭先生,整个乐队一起演奏时,谁也不知道他根本不会吹竽。马上把batch_size改为1进行一条一条的训练(随机梯度),发现效果非常好,问题解决。

 

 

  • 13
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值