多分类LSTM训练集和测试集准确率差别很大

训练概况:
1、对时序数据进行7分类,样本shape为 60 * 14 ,mini_batch是128
2、训练时模型收敛到准确率97%左右,在验证集上测试时发现大概在50轮左右开始过拟合,最终最佳模型的效果定格在83%左右。
3、测试时使用全新数据进行测试,但是在实际测时发现最高准确率只有40%,随着epoch的增加,产出的模型准确率还在降低。
解决问题进行的尝试:
1、在网络结构中,我使用了BN层和dropout,查资料看到可能是.train()和.eval()引发的错误,但是我这里是弄好了的,我还看到有人说测试时不能将BN冻结,尝试之后发现没有效果。
2、为了避免BN和dropout因为其他原因影响准确率,我将他们删去,发现依旧没有效果。
3、怀疑是shuffle导致的问题,在我将shuffle设置为false时,问题未解决
4、此时我开始审视我的数据是否有问题,我使用从训练集中截取的一段数据进行测试,发现训练集中经归一化后的结果和测试时归一化后的结果不一致。因此发觉是归一化时的问题。
解决办法:
我使用的是最大最小值归一化,将训练集上的归一化参数dump下来保存,测试集再重新load回来,不一致的原因在于我在训练时使用的是.fit_transform(),测试时也是用的这个。也就是说我保存的参数其实没有作用到测试数据上,应该使用.transform()来对测试数据归一化。
修改后,测试集准确率回归正常。

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值