Wie kann ich den Fortschritt der scipy.optimize-Funktion anzeigen?
Benutze ich scipy.optimize
zur Minimierung einer Funktion von 12 Argumente.
Begann ich die Optimierung eine Weile her, und warten noch auf Ergebnisse.
Ist es ein Weg, um Kraft scipy.optimize
um Ihren Fortschritt anzuzeigen (wie viel ist schon getan, was sind die aktuellen best-point)?
Kommentar zu dem Problem
Haben Sie überprüft
callback
- parameter der Minimierung Funktion? Für einen anderen Ansatz, ohne
callback
, siehe Funcgradmon. Es speichert alle x f g
Werte, dann schreiben Sie Sie in eine Datei Plotten. InformationsquelleAutor der Frage Roman | 2013-05-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als mg007 vorgeschlagen, einige der scipy.Optimierung der Routinen ermöglichen eine callback-Funktion (leider leastsq jedoch noch nicht möglich im moment). Unten ist ein Beispiel für die Verwendung der "fmin_bfgs" - routine, wo ich benutze eine callback-Funktion, um den aktuellen Wert der Argumente und der Wert der Zielfunktion bei jeder iteration.
Die Ausgabe sieht wie folgt aus:
Mindestens diese Weise können Sie beobachten, wie der Optimierer verfolgt die minimale
InformationsquelleAutor der Antwort Joel Vroom
Folgende @Joels Beispiel, es ist eine saubere und effiziente Art und Weise zu tun, die ähnliche Sache. Folgende Beispiel zeigen, wie können wir loswerden
global
Variablencall_back
Funktionen und re-Evaluierung Ziel-Funktion mehrere Male.Dies erzeugt eine Ausgabe wie
Allerdings keine starten, hier habe ich
function evaluation times
stattalgorithmic iteration times
als Zähler. Einige algorithmen auswerten dürfen target-Funktion mehrfach in einer einzelnen iteration.InformationsquelleAutor der Antwort 刘金国
Die Minimierung der Funktion benutzt du genau?
Meisten Funktionen haben Fortschrittsbericht gebaut, darunter mehrere Ebenen der Berichte, die zeigen genau die Daten, die Sie wollen, indem Sie mit der
disp
flag (siehe zum Beispiel scipy.optimieren.fmin_l_bfgs_b).InformationsquelleAutor der Antwort Bitwise
Versuchen Sie es mit:
zwingen
scipy.optimize.minimize
zum drucken von Zwischenergebnissen.InformationsquelleAutor der Antwort user3313382