16 Stimmen

SciPy curve_fit-Laufzeitfehler, Anhalten der Iteration

Ich benutze scipy.optimize.curve_fit() in einer iterativen Weise.

Mein Problem ist, dass das gesamte Programm (und damit auch die Iteration) anhält, wenn es nicht in der Lage ist, die Parameter anzupassen; dies ist die Fehlermeldung, die es ausgibt:

RuntimeError: Optimal parameters not found: Number of calls to function has reached maxfev = 800.

Ich verstehe, dass es deshalb nicht passen konnte. Mein Problem ist, dass gibt es eine Möglichkeit, ich kann das Programm in Python 3.2.2 schreiben, die solche Ereignisse ignorieren und einfach weiter?

20voto

talonmies Punkte 69030

Sie können die Standardausnahmebehandlung von Python verwenden, um den Fehler abzufangen, der durch curve_fit in Fällen, in denen die Optimierung nicht zu einer Lösung führt. Also so etwas wie:

try:
    popt,pcov = scipy.optimize.curve_fit(f, xdata, ydata, p0=None, sigma=None)

except RuntimeError:
    print("Error - curve_fit failed")

Mit diesem Konstrukt können Sie den Fehlerzustand abfangen und behandeln, der durch curve_fit ohne dass Ihr Programm abbricht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X