python - Scipy.optimize.minimize 在优化黑盒函数时忽略了我指定的边界
问题描述
我试图最小化 76 个参数的函数。我希望每个参数值都在 0 到 5 之间。
默认算法 LBFGS 未能找到最优值。
因此,我尝试了 TNC 算法,虽然它实现了良好的目标函数值,但它给我的解决方案却忽略了界限。它的输出似乎没有表明任何失败。
x0 = np.zeros(2 * S)
bnds = tuple([(0,5)]*2*S)
r = scipy.optimize.minimize(mse, x0, method = 'TNC', bounds=bnds, callback=print_callback, options={'disp': True})
这是 TNC 优化的输出:
(prior_every_personb_mse_sg.py:8229): Gdk-CRITICAL **: 15:06:09.828: gdk_cursor_new_for_display: assertion 'GDK_IS_DISPLAY (display)' failed
(prior_every_personb_mse_sg.py:8229): Gdk-CRITICAL **: 15:06:09.831: gdk_cursor_new_for_display: assertion 'GDK_IS_DISPLAY (display)' failed
NIT NF F GTG
0 1 2.544667777777778E+03 1.71075138E+22
tnc: fscale = 1.5291e-12
tnc: |xn-xn-1] = 9.73002e-10 -> convergence
1 27 1.862298888888889E+03 2.84054419E+22
tnc: Converged (|x_n-x_(n-1)| ~= 0)
解决方案
推荐阅读
- ios - 配置文件“iOS 团队配置文件:...不支持关联域功能
- c - 如何安全地更新正在运行的动态库?
- firebase-cloud-messaging - 处理请求时出现未知错误。云消息传递
- machine-learning - L1范数如何选择特征?
- laravel - cURL 错误 60:SSL 证书问题:无法获取本地颁发者证书(请参阅 https://curl.haxx.se/libcurl/c/libcurl-errors.html)
- javascript - 从javascript中的数组中删除所有[0]
- c# - 用对象列表中的参数填充列表c#
- python-3.x - 用于创建字典并对其运行操作的 Python 函数,如下所示
- javascript - 防止基于给定正则表达式的无效格式
- ios - 在转换到它之前加载 WebView