wekws icon indicating copy to clipboard operation
wekws copied to clipboard

Loss didn’t drop when training FSMN_CTC.

Open LiHangyu521 opened this issue 1 year ago • 18 comments

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

LiHangyu521 avatar Mar 05 '24 04:03 LiHangyu521

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不会降到很低,只需要关注模型在正例(有关键词的数据)上的效果就行,可以用测试数据跑一下测试,看看检出和误检。

duj12 avatar Mar 05 '24 06:03 duj12

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

LiHangyu521 avatar Mar 05 '24 06:03 LiHangyu521

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

duj12 avatar Mar 05 '24 07:03 duj12

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

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

LiHangyu521 avatar Mar 05 '24 07:03 LiHangyu521

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

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

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

duj12 avatar Mar 05 '24 07:03 duj12

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

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

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

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

LiHangyu521 avatar Mar 05 '24 07:03 LiHangyu521

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

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

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

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

LiHangyu521 avatar Mar 05 '24 07:03 LiHangyu521

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

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

duj12 avatar Mar 05 '24 07:03 duj12

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

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

LiHangyu521 avatar Mar 05 '24 08:03 LiHangyu521

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

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

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

duj12 avatar Mar 05 '24 10:03 duj12

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

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

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

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

image

LiHangyu521 avatar Mar 07 '24 07:03 LiHangyu521

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

duj12 avatar Mar 07 '24 11:03 duj12

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

lvchigo avatar Apr 09 '24 03:04 lvchigo

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

Ostarsion avatar Aug 20 '24 08:08 Ostarsion

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

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

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

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

image

题主这个问题解决了吗

xing-bing avatar Sep 03 '24 01:09 xing-bing

您好, @duj12 ,我在测试 小问 数据集的时候遇到一个问题,我发现测试集里面是有关键词和非关键词的,我是不是只需要去关注含有关键词的batch 的正确率呢?

NoirCL avatar Jul 31 '25 07:07 NoirCL

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

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

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

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

image

请问解决了吗,我试了下run_ctc这个脚本同样遇到不收敛的问题

CooperLee996 avatar Aug 26 '25 12:08 CooperLee996

因为loss本来就很高。可以通过实际测试检出和检准 @.在 2025年8月26日,20:52,CooperLee996 @.> 写道:CooperLee996 left a comment (wenet-e2e/wekws#155)

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

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

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

我想知道可能会有什么原因导致的,是否可能是CTC_loss的代码有问题 image.png (view on web)

请问解决了吗,我试了下run_ctc这个脚本同样遇到不收敛的问题

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

duj12 avatar Aug 28 '25 10:08 duj12