python中优化算法的计算时间限制

python中优化算法的计算时间限制,python,numpy,optimization,time,scipy,Python,Numpy,Optimization,Time,Scipy,在Python中使用优化算法时,例如从Scipy库中使用优化算法时,可以通过可选参数“maxiter”指定最大迭代次数。但是,我更希望限制此算法的总计算时间,因为我希望在时间关键的应用程序中使用它。迭代次数是次要的 有没有办法限制Scipy优化函数的最大计算时间?如果这意味着结果不太准确,那没关系。当计算时间用完时,您希望发生什么?返回计算的当前状态或完全放弃?我希望获得当前状态,无论它在该时间点上有多好。如果您可以估计优化器每次迭代所需的时间(基于数据集的大小),则可以指定最大迭代次数。这将需

在Python中使用优化算法时,例如从Scipy库中使用优化算法时,可以通过可选参数“maxiter”指定最大迭代次数。但是,我更希望限制此算法的总计算时间,因为我希望在时间关键的应用程序中使用它。迭代次数是次要的


有没有办法限制Scipy优化函数的最大计算时间?如果这意味着结果不太准确,那没关系。

当计算时间用完时,您希望发生什么?返回计算的当前状态或完全放弃?我希望获得当前状态,无论它在该时间点上有多好。如果您可以估计优化器每次迭代所需的时间(基于数据集的大小),则可以指定最大迭代次数。这将需要一些测试,但有几个不同大小的参考点,您应该能够得到足够好的估计。首先,您知道如何跟踪自己代码的时间吗?一些
scipy
函数具有
回调
挂钩。我看到它用于显示/存储中间结果,但可能用于退出循环。如果是这样,您可以在该函数中跟踪时间。我不知道在这方面,
scipy.optimize
的例程是否安全。部分结果可能不仅仅是“不太准确”,事实上它可能完全是垃圾。更好的方法可能是为最初的猜测和预测寻找启发式方法。