BJH*_*BJH 7 python optimization scipy
该页面(http://docs.scipy.org/doc/scipy/reference/optimize.minimize-lbfgsb.html)描述了可以传递给scipy优化包的L-BFGS-B方法的求解器选项.我正在尝试设置求解器退出容差.
文档中提到了两个选项,我将优先使用的是'factr',求解器在以下情况(f^k - f^{k+1})/max{|f^k|,|f^{k+1}|,1} <= factr * eps下退出:(
其中epsilon是机器精度).但是,当我运行我的代码时会收到警告:
OptimizeWarning:未知的求解器选项:factr
所以我认为这个选项已被弃用而不赞成ftol(不知道为什么会这样?).ftol是指定的数字(即diff <= n而不是<= n*machine_error).
这对我来说很好,但是我得到的求解器的退出信息是
收敛:REL_REDUCTION_OF_F _ <= _ FACTR*EPSMCH
这表明L-BFGS-B例程仍在使用某些我不知道的factr值,而且似乎无法指定.在代码中可能是一个被忽视的错误,可能是我错过了一些传递选项的方法.使用这个流行解算器的人是否知道解决方法?
谢谢
我也在scipy github存储库上打开了一个问题.
在内部,factr仍会进行计算(在此代码行中)。
您可以简单地使用类似
myfactr = 1e2
r = scipy.optimize.minimize(..., options={'ftol' : myfactr * np.finfo(float).eps)
Run Code Online (Sandbox Code Playgroud)
如果您仍想为而factr不是ftol直接指定一个值。
| 归档时间: |
|
| 查看次数: |
4319 次 |
| 最近记录: |