sirui.li
sirui.li
> > > @kobenaxie 有个比较快的解决方式,就是把data.list重复epoch次,然后按照step去存ckpt(yaml中设置save_interval),这样只会在最终训练完成的时候才会遇到join > > > > > > 嗯嗯,也是个方法 > > 最新已支持这种模式 @xingchensong 看完上面的讨论,我已经完全了解了添加save_interval的必要性,但是[train.py的136行](https://github.com/wenet-e2e/wenet/blob/main/wenet/bin/train.py#L136)不合理: 0. 136行更改了end_epoch,等价于更改了max_epoch,但是未写入配置文件,具有迷惑性 1. 如果要使用xcsong说的复制data.list到达epoch次,从而解决数据分布不均匀导致每个epoch结束从而出现长时间卡住,无法开始下一个epoch,只需要将max_epoch设置为1,而不需要添加136行 2. 我认为save_interval应该在正常的多epoch训练中也发挥其作用,而不是只能训练一个epoch 建议修改train.py的136行为下面这样: ```bash end_epoch = configs.get('max_epoch', 100) ```...
> maxepoch已经转化为cycle了 > > https://github.com/wenet-e2e/wenet/blob/main/wenet%2Futils%2Ftrain_utils.py#L332-L332 > > 也就是只要设置了max epoch,就真的会跑max epoch轮,只是在save interval 模式下是把list重复max epoch次(也就是cycle),假设maxepoch是100,这里把max epoch改成1意思是100个list跑1轮(相比于原来每个epoch存一次,是1个list跑100轮),这个1并不是指一个list只跑一轮 感谢回复,我明白了。很久没看加载dataset部分的代码了,已经通过cycle自动完成了data.list的复制,而不需要手动复制
> 这似乎与现有的 TN 错误有关。它无法处理整个句子。它将通过我正在工作的 PR 修复。 > This seems to be related to the existing TN bug. It was not able to process a whole sentence. It will be fixed...