小编mik*_*iki的帖子

致命的 Python 错误:无法从堆栈溢出中恢复

我在互联网上阅读了类似的问题,但没有一个答案可以帮助我。我有一个函数,可以为每一行数据(数据大约有 2'000'000 行)做一些事情,然后根据它所做的事情用不同的参数调用相同的函数。问题是,过了一会儿,我在终端中收到此错误:“致命的 Python 错误:无法从堆栈溢出中恢复。”

看起来导致这个错误最常见的错误是无限循环,但我控制并没有无限循环。因此,对我来说,'sys.getrecursionlimit()' 设置为 3000 的问题,这意味着在 3000 次调用同一函数后,它会给我错误。

首先,我不明白“致命的 Python 错误:无法从堆栈溢出中恢复”之间的区别。在终端中,或在 jupyternotebook 中出现“RecursionError:比较时超出最大递归深度”。事实上,对我来说它可能来自同样的错误(例如无限循环)。

当用一个简单的名为“test_”的函数替换我的函数时,我有以下代码:

import sys
print(sys.getrecursionlimit())

def test_(x,t):
    x = x+1
    if x<t:
        test_(x=x,t=t)

print(test_(0,2971)) # output: None
print(test_(0,2972)) # RecursionError: maximum recursion depth exceeded in comparison
Run Code Online (Sandbox Code Playgroud)

3000

没有任何

-------------------------------------------------- ------------------------- RecursionError Traceback (最近调用 last) in () 8 9 print(test_(0,2971)) --- > 10 打印(test_(0,2972))

在 test_(x, t) 5 x = x+1 6 if x 7 test_(x=x,t=t) 8 9 打印(test_(0,2971))

... 重复最后 1 帧,从下面的帧开始...

在 test_(x, t) …

python stack-overflow recursion

14
推荐指数
1
解决办法
2万
查看次数

如何在Keras中使用fit_generator()来加权?

我正在尝试使用keras来拟合CNN模型来对图像进行分类.数据集具有来自某些类的更多图像,因此其不平衡.

我在Keras上阅读了关于如何权衡损失的不同内容,例如:https: //datascience.stackexchange.com/questions/13490/how-to-set-class-weights-for-imbalanced-classes-in -keras,很好地解释了.但是,它总是解释fit()函数,而不是fit_generator()函数.

实际上,在fit_generator()函数中我们没有' class_weights '参数,而是我们有' weighted_metrics ',我不理解它的描述:"weighted_metrics:在训练期间由sample_weight或class_weight评估和加权的指标列表测试".

如何从"class_weights"传递到"weighted_metrics"?有人会有一个简单的例子吗?

python keras

3
推荐指数
1
解决办法
4030
查看次数

标签 统计

python ×2

keras ×1

recursion ×1

stack-overflow ×1