Seite 1 von 1

Array in Liste zurückführen

Verfasst: Freitag 3. Februar 2017, 10:45
von Romaxx
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

Re: Array in Liste zurückführen

Verfasst: Montag 6. März 2017, 15:49
von Romaxx
Hallo zusammen,

ich interessiere mich weiterhin für eine Lösung dieses Problems.
Ich bin auch an nicht unbedingt einfachen Lösungen interessiert, solange es tut.

Danke und Schöne Grüße

Roman

Re: Array in Liste zurückführen

Verfasst: Dienstag 7. März 2017, 09:10
von Romaxx
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]