Python 动态时间规整中避免堆栈溢出的技术
我写了一个动态时间扭曲单词识别系统,发现在没有达到最大递归深度的情况下,我能处理的最大音频文件是1秒样本。克服此问题的常用技术有哪些 这是我引用的代码 有一个例子可以解释为什么递归在Python中是个坏主意。在其他语言中更容易 幸运的是,您经常可以将递归转换为循环,如上所述 您可以在以下网站上找到无递归DTW示例:Python 动态时间规整中避免堆栈溢出的技术,python,optimization,nlp,speech-recognition,dynamic-programming,Python,Optimization,Nlp,Speech Recognition,Dynamic Programming,我写了一个动态时间扭曲单词识别系统,发现在没有达到最大递归深度的情况下,我能处理的最大音频文件是1秒样本。克服此问题的常用技术有哪些 这是我引用的代码 有一个例子可以解释为什么递归在Python中是个坏主意。在其他语言中更容易 幸运的是,您经常可以将递归转换为循环,如上所述 您可以在以下网站上找到无递归DTW示例: 请提供你写的代码。是的,很抱歉,我编辑了我的动态时间扭曲算法的要点 int DTWDistance(s: array [1..n], t: array [1..m]) { D
请提供你写的代码。是的,很抱歉,我编辑了我的动态时间扭曲算法的要点
int DTWDistance(s: array [1..n], t: array [1..m]) {
DTW := array [0..n, 0..m]
for i := 1 to n
DTW[i, 0] := infinity
for i := 1 to m
DTW[0, i] := infinity
DTW[0, 0] := 0
for i := 1 to n
for j := 1 to m
cost:= d(s[i], t[j])
DTW[i, j] := cost + minimum(DTW[i-1, j ], // insertion
DTW[i , j-1], // deletion
DTW[i-1, j-1]) // match
return DTW[n, m]
}