使用CTCloss进行ASR任务时的一些问题

问题描述 投票:0回答:1

使用torch.nn.CTCloss时,为什么我的损失曲线收敛了,但模型似乎重复只输出几个标记? 例如: 我的标签是:[220, 1122, 172, 26, 460, 836, 171, 1813, 113, 39, 83, 61, 267, 38, 202, 223] 然而,模型的输出是: [100, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1].

其中 1 是空白字符。两者差别很大。

为什么会出现这种情况?

我做了什么:

  1. 去除语音开头和结尾的空白部分,以16000Hz重新采样语音,并填充到相同的长度
  2. 使用WAV2VEC2.0作为特征提取器并使用两个全连接层进行token分类
  3. log_softmax (-1) 到输出
  4. 使用ctcloss,参数输入为:log_softmax(T,N,C)后的模型输出,标签sum(label_length),这个标签中没有空格字符,它是由每个句子的标签拼接在一起组成的,序列长度(N)、标签长度(N)

我希望我的输出接近标签

speech-recognition speech ctc
1个回答
0
投票

我遇到了完全相同的问题。你解决了吗?

这对我有很大帮助!谢谢

© www.soinside.com 2019 - 2024. All rights reserved.