thu-spmi / CAT

A CRF-based ASR Toolkit
Apache License 2.0
324 stars 74 forks source link

关于前后向算法中alpha和beta的问题 #64

Closed l2009312042 closed 1 year ago

l2009312042 commented 2 years ago

从源码中看fst_read.cc中ReadFst函数看,beta_next和alpha_next的具体含义是否跟常规的前后向算法一致? 感觉这俩实际赋值,跟常规计算的公式,是反着的 是正常的 alpha的计算需要看前面的 beta的计算需要看后面的 没问题的

2、还有一个问题。就是path_weight这个在loss的计算中基本是没有用到的,请问计算这个值的作用是什么呢?

liubin3702 commented 1 year ago

同问 pathweight既然没有参与反向传播,作用是不是就是语言模型打分了?

maxwellzh commented 1 year ago

path weight只是分子部分的LM打分,和声学模型参数更新是无关的,可参考https://github.com/thu-spmi/CAT/issues/53#issuecomment-1064994025

liubin3702 commented 1 year ago

语言模型的参数在训练过程中需要更新吗?是否与path_weight 有关

maxwellzh commented 1 year ago

目前我们的实现中,使用的LM在训练中是固定的(预先训练好的n-gram),并且无法支持同时训练LM

liubin3702 commented 1 year ago

目前我们的实现中,使用的LM在训练中是固定的(预先训练好的n-gram),并且无法支持同时训练LM

我自己定义了egs 训练时学习率怎么逐步上升的 上升好几轮才下降

maxwellzh commented 1 year ago

我自己定义了egs 训练时学习率怎么逐步上升的 上升好几轮才下降

@liubin3702 learning rate 受到scheduler的影响,我们定义了一些常用的scheduler,请参考https://github.com/thu-spmi/CAT/blob/master/scripts/ctc-crf/scheduler.py

liubin3702 commented 1 year ago

我自己定义了egs 训练时学习率怎么逐步上升的 上升好几轮才下降

@liubin3702 learning rate 受到scheduler的影响,我们定义了一些常用的scheduler,请参考https://github.com/thu-spmi/CAT/blob/master/scripts/ctc-crf/scheduler.py

已经完成了完整的训练并且测试了在解码之前的字错误率。我现在遇到的问题是,在步骤8 TLG解码测试时,执行ctc-crf/decode.sh 遇到了“run.pl: job failed, log is in exp/TDNN_LSTM/decode_test/scoring_kaldi/log/stats1.log”的报错,log中没用error,只有一行“Cannot read file at utils/scoring/wer_per_spk_details.pl line 135.”疑似错误,无法定位到问题在哪里;能否帮忙看看可能是哪里出的问题?

maxwellzh commented 1 year ago

@liubin3702 请问你执行的是哪个egs下的脚本?

liubin3702 commented 1 year ago

@liubin3702 请问你执行的是哪个egs下的脚本?

先跑的aishell1的脚本 一切顺利 TLG解码也没问题,用这个脚本改了自己需要的数据集和最小单元(有调拼音);最后一步测试遇到的上述问题