手动终止迭代/收敛循环?

2024-03-29 07:38:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我用Python做了很多数据分析。有很多算法是这样设置的,它们逐渐逼近一个问题的良好输出,并在达到最大迭代次数或公差参数时中断。(伪码

def fn(X):
    answer = initial_guess(X)
    for i in range(max_iterations):
       answer = refine_answer(X, answer)
       if is_good_enough(answer):
          break
    return answer

如果我手头有很多时间,我就等着完成这个功能。但是对于交互式分析来说,这可能是非常烦人和次优的,因为大多数改进都发生在最初的几次迭代中,并且从那里得到的回报是递减的。我们在这里讨论的是15分钟+算法,以实现完全收敛。你知道吗

因此,我要寻找的是一个好方法,可以选择,手动中断这样一个循环过早而不中断我的解释器,然后返回当前的最佳结果,这样我就可以继续我的分析。你知道吗

我想我可以通过捕捉一个KeyboardInterrupt,或者更模糊地说,捕捉一些其他的信号,这样我仍然可以使用Ctrl+C,如果这是我真正想要的。有没有一个标准的或好的方法来做到这一点?你知道吗


Tags: 方法answerin算法for参数defrange