Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Loss didn’t drop when training FSMN_CTC. #155

Open
LiHangyu521 opened this issue Mar 5, 2024 · 15 comments
Open

Loss didn’t drop when training FSMN_CTC. #155

LiHangyu521 opened this issue Mar 5, 2024 · 15 comments

Comments

@LiHangyu521
Copy link

Hi, when I trained the FSMN_CTC model on the Hi_xiaowen dataset, the loss didn't drop. I am asking whether the training process is not stable. What could I do to make it converage?
你好,当我小问数据集上训练FSMN_CTC模型时,模型的loss一直不下降,我想问一下是否训练过程是不稳定的,以及我是否应该重新训练,是否需要调整config文件,如调整学习率之类的操作。请问您是否有遇到这种情况,该如何处理,谢谢您!下边是我训练过程的一个截图:
image

@duj12
Copy link
Contributor

duj12 commented Mar 5, 2024

Hi, when I trained the FSMN_CTC model on the Hi_xiaowen dataset, the loss didn't drop. I am asking whether the training process is not stable. What could I do to make it converage? 你好,当我小问数据集上训练FSMN_CTC模型时,模型的loss一直不下降,我想问一下是否训练过程是不稳定的,以及我是否应该重新训练,是否需要调整config文件,如调整学习率之类的操作。请问您是否有遇到这种情况,该如何处理,谢谢您!下边是我训练过程的一个截图: image

这个是正常的哈,因为模型比较小,所以loss不会降到很低,只需要关注模型在正例(有关键词的数据)上的效果就行,可以用测试数据跑一下测试,看看检出和误检。

@LiHangyu521
Copy link
Author

Hi, when I trained the FSMN_CTC model on the Hi_xiaowen dataset, the loss didn't drop. I am asking whether the training process is not stable. What could I do to make it converage? 你好,当我小问数据集上训练FSMN_CTC模型时,模型的loss一直不下降,我想问一下是否训练过程是不稳定的,以及我是否应该重新训练,是否需要调整config文件,如调整学习率之类的操作。请问您是否有遇到这种情况,该如何处理,谢谢您!下边是我训练过程的一个截图: image

这个是正常的哈,因为模型比较小,所以loss不会降到很低,只需要关注模型在正例(有关键词的数据)上的效果就行,可以用测试数据跑一下测试,看看检出和误检。

非常感谢您的回复!!
验证集的acc很低,在测试集上,使用stream_score_ctc和score_ctc都无法检出到关键词,检出率为0 , 并没有误检,全部都检测成了负样本。
请问是否是模型的base.pt的问题,我在modelscope上手动下载的base.pt

@duj12
Copy link
Contributor

duj12 commented Mar 5, 2024

是不是刚开始训练? 我看你的截图应该是才开始第一轮训练吧?

@LiHangyu521
Copy link
Author

是不是刚开始训练? 我看你的截图应该是才开始第一轮训练吧?

已经训练了10个epoch了,一直没有什么变化,训练集的acc稳定在30%多。

@duj12
Copy link
Contributor

duj12 commented Mar 5, 2024

是不是刚开始训练? 我看你的截图应该是才开始第一轮训练吧?

已经训练了10个epoch了,一直没有什么变化,训练集的acc稳定在30%多。

你这里用的是ctc的训练脚本吗?还是说用fsmn模型,但是损失函数用的是maxpooling?

@LiHangyu521
Copy link
Author

是不是刚开始训练? 我看你的截图应该是才开始第一轮训练吧?

已经训练了10个epoch了,一直没有什么变化,训练集的acc稳定在30%多。

你这里用的是ctc的训练脚本吗?还是说用fsmn模型,但是损失函数用的是maxpooling?

我使用的是run_fsmn_ctc.sh的训练脚本。

@LiHangyu521
Copy link
Author

是不是刚开始训练? 我看你的截图应该是才开始第一轮训练吧?

已经训练了10个epoch了,一直没有什么变化,训练集的acc稳定在30%多。

你这里用的是ctc的训练脚本吗?还是说用fsmn模型,但是损失函数用的是maxpooling?

当时我使用run.sh来复现DSTCN+maxpooling_loss时,模型可以很快收敛。可以复现
但当我使用run_fsmn_ctc.sh来复现FSMN+CTC_loss时,模型的loss一直不会下降。

@duj12
Copy link
Contributor

duj12 commented Mar 5, 2024

但当我使用run_fsmn_ctc.sh来复现FSMN+CTC_loss时,模型的loss一直不会下降。

你这上面训练过程的acc是自己改了一下代码统计的对吧,原本代码中训练过程是不统计acc的哈。
可以等训练结束再看看。10个epoch的模型我也没测过,这个数据量很小,训练一天差不多就可以结束。到时候再测测看吧

@LiHangyu521
Copy link
Author

你这上面训练过程的acc是自己改了一下代码统计的对吧,原本代码中训练过程是不统计acc的哈。 可以等训练结束再看看。10个epoch的模型我也没测过,这个数据量很小,训练一天差不多就可以结束。到时候再测测看吧

是的,是我自己改动了一下代码统计acc,等训练结束以后,我再重新测试一下结果。我想请问一下作者,你们目前还能用这个run_fsmn_ctc.sh脚本复现出效果,在训练的时候loss大概在多少,想了解一下是否是我代码的问题。

@duj12
Copy link
Contributor

duj12 commented Mar 5, 2024

你这上面训练过程的acc是自己改了一下代码统计的对吧,原本代码中训练过程是不统计acc的哈。 可以等训练结束再看看。10个epoch的模型我也没测过,这个数据量很小,训练一天差不多就可以结束。到时候再测测看吧

是的,是我自己改动了一下代码统计acc,等训练结束以后,我再重新测试一下结果。我想请问一下作者,你们目前还能用这个run_fsmn_ctc.sh脚本复现出效果,在训练的时候loss大概在多少,想了解一下是否是我代码的问题。

具体数值我忘了。可以直接在小问例子的readme里面找一下,有fsmn训练好的checkpoint,是按照训练脚本跑完输出的平均模型,下载了跑一下就知道啦。

@LiHangyu521
Copy link
Author

具体数值我忘了。可以直接在小问例子的readme里面找一下,有fsmn训练好的checkpoint,是按照训练脚本跑完输出的平均模型,下载了跑一下就知道啦。

您好,我已经训练结束,仍然loss没有下降,我发现以下的几个问题:

  1. run_fsmn_ctc.sh脚本运行的模型,在训练80个epoch结束后,loss仍然没有下降(如下图)
  2. run_ctc.sh 脚本运行的模型,loss也没有下降。
  3. 评测了官方给出的训练好的模型,官方给的模型在评测score时都是正常的,准确率检出率都很高。

我想知道可能会有什么原因导致的,是否可能是CTC_loss的代码有问题

image

@duj12
Copy link
Contributor

duj12 commented Mar 7, 2024

检查一下你做的代码改动 另外检查一下数据哈。看看是不是正负例数据都正常,必须要是音频和对应文本内容而不是0,+-1的类别标签。
代码我在其他超级小的数据集上都验证过 没问题的哈

@lvchigo
Copy link

lvchigo commented Apr 9, 2024

  • 使用run_fsmn_ctc.sh脚本,进行模型训练;也遇到了跟题主一致的状况:在训练80个epoch后,loss仍然没有下降:最优cv_acc为41.61;
  • 使用run.sh 脚本,模型训练正常,loss下降正常,cv_acc提升正常;
  • 使用wekws版本为master分支,2024年4月8日拉取;

@Ostarsion
Copy link

题主解决这个问题了吗,按照run_fsmn_ctc.sh脚本运行情况是相同的

@xing-bing
Copy link

具体数值我忘了。可以直接在小问例子的readme里面找一下,有fsmn训练好的checkpoint,是按照训练脚本跑完输出的平均模型,下载了跑一下就知道啦。

您好,我已经训练结束,仍然loss没有下降,我发现以下的几个问题:

  1. run_fsmn_ctc.sh脚本运行的模型,在训练80个epoch结束后,loss仍然没有下降(如下图)
  2. run_ctc.sh 脚本运行的模型,loss也没有下降。
  3. 评测了官方给出的训练好的模型,官方给的模型在评测score时都是正常的,准确率检出率都很高。

我想知道可能会有什么原因导致的,是否可能是CTC_loss的代码有问题

image

题主这个问题解决了吗

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants