2016-04-03 5 views
1

Ich habe die folgende FunktionWie minimiert man ein Argument einer Funktion mit Scipy?

def fun(X, alpha, y): 
    #some stuff 
    return J, gradient 

Und ich versuche alpha damit minimze, aber nichts passiert.

optimized_alpha = sp.optimize.minimize(lambda t: fun(X, t, y), alpha, method="Newton-CG", jac=True) 

Antwort

2

Sie können functools.partial benutzen, um Ihre Funktion Teilfunktion einzuschalten mit nur ein Argument. Um es funktioniert scipy.optimize.minimize müssen Sie die Variable Argument an der letzten Position halten:

def fun(X, y, alpha): 
    #some stuff 
    return J, gradient 

dann:

from functools import partial 

optfunc = partial(func, X, y) 
optimized_alpha = sp.optimize.minimize(optfunc, alpha, method="Newton-CG", jac=True) 
Verwandte Themen