yeyupiaoling/MASR

模型训练问题

Chenwe111 opened this issue · 10 comments

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

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

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

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

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

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

MASR/train.py

Line 34 in 394bcca

add_arg('pretrained_model', str, None, '预训练模型的路径,当为None则不使用预训练模型')

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

感觉还是有点问题,我感觉加载预训练后,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`

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

那现在这种情况正常吗

正常的