我最近开始使用 scipy.optimize 并且我不清楚为什么在 fmin_cg 中,在启动时,根据当前函数值将函数的“先前”值设置为固定值
xk = x0
old_fval = f(xk)
old_old_fval = old_fval + 5000
这绕过了代码中稍后处理(更正确?)这种情况的行搜索功能的方式。当然应该说:
xk = x0
old_fval = f(xk)
old_old_fval = None
还是我错过了什么?
我最近开始使用 scipy.optimize 并且我不清楚为什么在 fmin_cg 中,在启动时,根据当前函数值将函数的“先前”值设置为固定值
xk = x0
old_fval = f(xk)
old_old_fval = old_fval + 5000
这绕过了代码中稍后处理(更正确?)这种情况的行搜索功能的方式。当然应该说:
xk = x0
old_fval = f(xk)
old_old_fval = None
还是我错过了什么?
是的,应该是None
。再看一下代码,这两个值似乎都导致1.0
用作初始步长,但是即使碰巧起作用,代码中的“魔术”数字也只是不好的风格。
想要提交补丁?(不过,现在我们更喜欢对补丁进行小的更改的拉取请求,但这并没有更多的工作。)