Hallo zusammen,
mit dem Befehl:
[codebox=pycon file=Unbenannt.txt]x0 = np.concatenate([np.atleast_2d(opt_params[n]).flatten() for n in vSSGP_LVM_opt.opt_param_names])
[/code]
erhalte ich meinen Startwert für eine Optimierung mit Theano aus eine Liste von Variablen.
Ich möchte nun nach der Optimierung die optimierten Parameter wieder in die selbe Liste zurückführen mit den entsprechenden Variablennamen.
Wie kann ich das machen? Gibt es hier eine einfache Vorgehensweise?
Vielen Dank, Romaxx
Array in Liste zurückführen
Ich habe nun eine Lösung erarbeitet:
[codebox=python file=Unbenannt.txt]opt_param_names = [n for n,_ in opt_params.iteritems()]
opt_param_values = [np.atleast_2d(opt_params[n]) for n in opt_param_names]
shapes = [v.shape for v in opt_param_values]
sizes = [sum([np.prod(x) for x in shapes[:i]]) for i in xrange(len(shapes)+1)]
x_param_values = [x0[sizes[i-1]:sizes].reshape(shapes[i-1]) for i in xrange(1,len(shapes)+1)]
opt_params = {n:v for (n,v) in zip(opt_param_names, x_param_values)}[/code]
[codebox=python file=Unbenannt.txt]opt_param_names = [n for n,_ in opt_params.iteritems()]
opt_param_values = [np.atleast_2d(opt_params[n]) for n in opt_param_names]
shapes = [v.shape for v in opt_param_values]
sizes = [sum([np.prod(x) for x in shapes[:i]]) for i in xrange(len(shapes)+1)]
x_param_values = [x0[sizes[i-1]:sizes].reshape(shapes[i-1]) for i in xrange(1,len(shapes)+1)]
opt_params = {n:v for (n,v) in zip(opt_param_names, x_param_values)}[/code]