如何使用 Scipy 最小化函数的一个参数?
How to minimize one argument of a function using Scipy?
我有以下功能
def fun(X, alpha, y):
#some stuff
return J, gradient
我正试图用它来最小化 alpha,但没有任何反应。
optimized_alpha = sp.optimize.minimize(lambda t: fun(X, t, y), alpha, method="Newton-CG", jac=True)
您可以使用 functools.partial
将您的函数转换为只有一个参数的部分函数。为了使其与 scipy.optimize.minimize
一起使用,您需要将变量参数保留在最后一个位置:
def fun(X, y, alpha):
#some stuff
return J, gradient
然后:
from functools import partial
optfunc = partial(func, X, y)
optimized_alpha = sp.optimize.minimize(optfunc, alpha, method="Newton-CG", jac=True)
我有以下功能
def fun(X, alpha, y):
#some stuff
return J, gradient
我正试图用它来最小化 alpha,但没有任何反应。
optimized_alpha = sp.optimize.minimize(lambda t: fun(X, t, y), alpha, method="Newton-CG", jac=True)
您可以使用 functools.partial
将您的函数转换为只有一个参数的部分函数。为了使其与 scipy.optimize.minimize
一起使用,您需要将变量参数保留在最后一个位置:
def fun(X, y, alpha):
#some stuff
return J, gradient
然后:
from functools import partial
optfunc = partial(func, X, y)
optimized_alpha = sp.optimize.minimize(optfunc, alpha, method="Newton-CG", jac=True)