python - gtol 参数问题 [神秘]
问题描述
我正在尝试使用 Python 中的神秘库优化函数,并且对gtol参数有一个一般性的问题。
我正在搜索的参数空间是高维(30-40),因此,设置gtol = 40000似乎适合我。奇怪的是,算法似乎在 30000 次迭代后停止,尽管我指定了gtol为 40000,这(据我所知)意味着该算法在停止运行之前应该有 40000 次相同的迭代。
我的函数调用非常基本:
stepmon = VerboseLoggingMonitor(1, 1)
result = diffev2(utilss, x0=[1/value]*value, bounds=[(0,0.2)] * value, npop=150, gtol=40000, disp=True, full_output=True, itermon=stepmon
我检查了评价函数的演变,它在第 29000 次迭代时持平。最后 1000 次迭代是相同的,但它已经停止,而不是运行其余 39000 次所需的gtol迭代。
我是否误解了gtol参数?或者我在这里错过了什么?
提前致谢。
解决方案
我是mystic
作者。这是对 的正确解释gtol
,但是,您可能忽略了maxiter
(and maxfun
),这是要执行的最大迭代次数(和函数评估)。
如果您不设置maxiter
(默认为None
),那么我相信默认设置diffev2
为10 * nDim * nPop
。尝试设置maxiter=100000
,或类似的东西。
如果终止消息显示Warning: Maximum number of iterations has been exceeded
,则maxiter
导致它停止。
推荐阅读
- ldap - 有没有办法每小时只从 LDAP 导出新创建/修改的用户?
- windows - 不使用服务器IP地址远程访问虚拟服务器地址
- vert.x - 如何在vertx中验证多部分/表单数据上传的文件类型?
- javascript - Javascript 进度条不适用于 Firefox
- python - 如何制作可用于数据集中任何列的通用函数?
- apache-flink - Flink 可以处理返回的键随时间变化的键选择器函数吗?
- webpack - 如何将 AJV 库捆绑到 Webpack?
- java - 从 Hashmap 中返回数据提供者类型 Object[]
> - firebase - 如何正确地进行树抖动以减少包大小并为每个云功能单独入口点
- kentico - Kentico 11:多文化设置,但需要在文化之外创建 URL