我在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,如果那是我真正想要的。是否有标准或好的方法来做到这一点?