yeyupiaoling / MASR

Pytorch实现的流式与非流式的自动语音识别框架,同时兼容在线和离线识别,目前支持Conformer、Squeezeformer、DeepSpeech2模型,支持多种数据增强方法。
Apache License 2.0
563 stars 100 forks source link

模型训练问题 #28

Closed Chenwe111 closed 2 years ago

Chenwe111 commented 2 years ago

博主你好: 我这边尝试训练一个200小时的自定义数据集,batch设置的512,学习率按照(5e-5)*5.66设置,并且加载了AIshell的预训练,训练了290个epoch,没有很收敛,loss最终30+, cer只有67, 请问是什么原因

yeyupiaoling commented 2 years ago

你不修改学习率试试看。另外你的数据是否正确。有没有制作自己的均值和标准差,和数据字典

Chenwe111 commented 2 years ago

数据生成是按照你的create_data来的

yeyupiaoling commented 2 years ago

那数据应该是没问题的,你的是中文语音数据吧。

Chenwe111 commented 2 years ago

是中文,我是自己划分的训练集和测试集,我现在重新整理了一下txt文件,现在重新生成了manifest文件,但是现在没法加载预训练权重了,代码里面是会将预训练字典中非当前字典的键值对剔除是吗,怎么感觉没起作用

yeyupiaoling commented 2 years ago

预训练模型路径是指定这个,学习率调低有么有用

https://github.com/yeyupiaoling/MASR/blob/394bccac5508c25c8a36d925754980f978897be5/train.py#L34

Chenwe111 commented 2 years ago

我再训了,等观察一下,那个epoch需要在65的基础上加大些吗

Chenwe111 commented 2 years ago

感觉还是有点问题,我感觉加载预训练后,loss应该降的很快,cer的值应该很快会降到一个值然后慢慢下降(因为之前只搞过cv没搞过语音=-=),现在居然能出现cer大于1,很奇怪 `[2022-04-01 01:46:30.248243] Train epoch: [5/65], batch: [0/224], loss: 86.20354, learning rate: 0.00003478, eta: 1:27:25 [2022-04-01 01:46:53.254629] Train epoch: [5/65], batch: [100/224], loss: 90.05589, learning rate: 0.00003478, eta: 0:51:45 [2022-04-01 01:47:15.951851] Train epoch: [5/65], batch: [200/224], loss: 58.52267, learning rate: 0.00003478, eta: 0:50:39

====================================================================== [2022-04-01 01:47:24.663573] Test batch: [0/4], loss: 32.54852, cer: 0.95321 [2022-04-01 01:47:26.565097] Test epoch: 5, time/epoch: 0:01:00.016433, loss: 47.25649, cer: 1.03693`

yeyupiaoling commented 2 years ago

这里了使用的是字错率,跟真正的错误率是有区别的。

Chenwe111 commented 2 years ago

那现在这种情况正常吗

yeyupiaoling commented 2 years ago

正常的