如何修复 julia 中的 Stackoverflow 错误
How can I fix the error Stackoverflow in julia
我在下面写了一些代码,它工作正常。
function value_counter(data, feature_name)
feature_col = unique(data, feature_name)
unique_val = unique!(unique(data, feature_name))
count_val = []
value_counts_dict = Dict()
for val in unique_val
counter = 0
for col_val in feature_col
if val == col_val
counter += 1
end
end
append!(count_val, counter)
value_counts_dict[val] = counter
end
return value_counts_dict
end
但是当我运行它翻了三遍。它出现了一个错误 'Whosebug',我认为是来自 unique 方法的错误。如何在 运行 执行代码后释放堆栈?
更新:我尝试重新定义独特的方法。仍然是错误,但这次是在 'in' 方法中
ERROR: LoadError: WhosebugError:
Stacktrace:
[1] in(x::SubString{String}, itr::Vector{Any})
@ Base .\operators.jl:1283
[2] redefine_unique(data::Vector{Any})
@ Main E:\Study_grade\Csttnt\Project03_decision_tree\Decision_Tree.jl:35
可能不是 in
方法或 unique
方法本身 导致 堆栈溢出。相反,您有一些大的、可能是递归的堆栈,当它到达下游函数时恰好达到堆栈大小限制。您应该在堆栈中寻找的是递归部分所在的位置。哪些功能被重复调用?您可能在某处遗漏了一个基本情况,或者可能将意外的递归引入了一个被覆盖的基本函数中,正如 Sundar 提到的那样。
我在下面写了一些代码,它工作正常。
function value_counter(data, feature_name)
feature_col = unique(data, feature_name)
unique_val = unique!(unique(data, feature_name))
count_val = []
value_counts_dict = Dict()
for val in unique_val
counter = 0
for col_val in feature_col
if val == col_val
counter += 1
end
end
append!(count_val, counter)
value_counts_dict[val] = counter
end
return value_counts_dict
end
但是当我运行它翻了三遍。它出现了一个错误 'Whosebug',我认为是来自 unique 方法的错误。如何在 运行 执行代码后释放堆栈?
更新:我尝试重新定义独特的方法。仍然是错误,但这次是在 'in' 方法中
ERROR: LoadError: WhosebugError:
Stacktrace:
[1] in(x::SubString{String}, itr::Vector{Any})
@ Base .\operators.jl:1283
[2] redefine_unique(data::Vector{Any})
@ Main E:\Study_grade\Csttnt\Project03_decision_tree\Decision_Tree.jl:35
可能不是 in
方法或 unique
方法本身 导致 堆栈溢出。相反,您有一些大的、可能是递归的堆栈,当它到达下游函数时恰好达到堆栈大小限制。您应该在堆栈中寻找的是递归部分所在的位置。哪些功能被重复调用?您可能在某处遗漏了一个基本情况,或者可能将意外的递归引入了一个被覆盖的基本函数中,正如 Sundar 提到的那样。