最近在训练CNN ctc_loss神经网络时,经常莫名奇妙出现两种问题:
1、loss:inf 或者"No valid path found."
2、Invalid ArgumentError: "sequence_length(0) <= X"
网上关于这两种报错解决方法的帖子不多,而且大多讲的不够清楚,尝试了集中方法后,还是无法彻底解决问题。经过一番摸索,总结了解决方法如下。
一、报错 loss:inf "No valid path found"
两种原因:1、训练数据文件路径乱码(猜测);2、神经网络学习速率lr过大。
1、对于第一种原因的解决办法:
其实提示已经写的很清楚了,"No valid path found",即“没有找到有效路径”。换句话讲,就是在读取训练数据时,路径找不到了。发生这种错误后,首先要去看一下是否是文件路径不对。大部分时候我们会发现,文件路径并没有错误。但为什么会报错了?而且有时候再次运行时,又不报错了(很神奇的一个问题,可遇而不可求)。
具体什么原因我也不清楚,于是我给出了我的猜测:系统在读取文件路径时发生了乱码(原因不得知)。这里给出我的解决办法。
将路径名中的单斜杠'/'全部改为双斜杠"//"。
如下:
/data/train/a.wav
改为
//data//train//a.wav
改完之后再也不会报错了。
2、对于第二种原因的解决办法:
很简单,减小学习速率lr。自己没有尝试过,只是借鉴了别人说法,主要是我在使用第一种方法后上述问题再也没有出现了。
二、报错 "sequence_length(0) <= X"
这个

在训练CNN ctc_loss神经网络时遇到两种常见错误:loss为inf和"No valid path found",以及"sequence_length(0) <= X"。前者可能由训练数据路径问题或学习速率过大导致,解决方案包括检查路径是否正确,尤其是文件路径的斜杠格式,以及调整学习速率。后者通常与ctc_loss函数的输入长度有关,确保input_length大于label_length,并结合最大池化层和数据长度计算方法来避免错误。正确处理这些错误能确保训练过程的顺利进行。
&spm=1001.2101.3001.5002&articleId=103443387&d=1&t=3&u=00541417d4f747dfbac5e1594961a85b)
2285

被折叠的 条评论
为什么被折叠?



