如果在不需要边界的 scipy (Python) 中使用带有最小化器的边界,我可以忽略来自 scipy 的警告吗?
Can I ignore warnings from scipy if using bounds with a minimizer in scipy (Python) that does not need bounds?
我运行一组来自scipy.optimize的最小化方法。
我输入了对一种特定方法 (Nelder-Mead) 调用的限制,scipy 警告我:
RuntimeWarning: Method Nelder-Mead cannot handle constraints nor bounds.
警告很明确:我不应该输入边界,但实际上我输入边界是出于其他原因(以概括我的代码并忽略特殊情况)。
问题
我可以忽略来自 scipy 的这个警告并仍然相信 Nelder-Mead 正在被使用,就好像我没有输入任何边界一样吗?
更新:
我查看了源代码,发现确实可以忽略警告,因为使用方法 "Nelder-Mead" 调用只是被重定向到调用:
return _minimize_neldermead(fun, x0, args, callback, **options)
显然没有边界,所以应该没问题。
更新:
自 2021 年起,Nelder-Mead 也可以处理边界问题。如果您将 Scipy 升级到 >1.7.1,它将不再忽略边界,但是您也不会再收到警告。
我运行一组来自scipy.optimize的最小化方法。 我输入了对一种特定方法 (Nelder-Mead) 调用的限制,scipy 警告我:
RuntimeWarning: Method Nelder-Mead cannot handle constraints nor bounds.
警告很明确:我不应该输入边界,但实际上我输入边界是出于其他原因(以概括我的代码并忽略特殊情况)。
问题 我可以忽略来自 scipy 的这个警告并仍然相信 Nelder-Mead 正在被使用,就好像我没有输入任何边界一样吗?
更新: 我查看了源代码,发现确实可以忽略警告,因为使用方法 "Nelder-Mead" 调用只是被重定向到调用:
return _minimize_neldermead(fun, x0, args, callback, **options)
显然没有边界,所以应该没问题。
更新:
自 2021 年起,Nelder-Mead 也可以处理边界问题。如果您将 Scipy 升级到 >1.7.1,它将不再忽略边界,但是您也不会再收到警告。