Seite 1 von 1
plot in Schleife beenden
Verfasst: Donnerstag 22. Juni 2017, 16:32
von pyzip
Hallo, bitte verschieben, falls ich im falschen Forum frage. Danke.
Ich habe mir zur Übung eine Klasse für ein einfaches neuronales Netz kopiert und möchte nun den Netzfehler nach jeder Epoche plotten. Nun ist Plot ja eine blockierende Funktion, d.h. ich muß das Fenster per Mausklick schließen, damit das Skript weiter läuft. Wie kann ich das Fenster - nach z.B. "time.sleep" - aus dem Skript heraus schließen?
Ich habe hier im Forum eine ähnliche Frage gefunden, habe die Lösung aber nicht wirklich verstanden. Für einen Hinweis wäre ich sehr dankbar!
Gruß Rainer
Re: plot in Schleife beenden
Verfasst: Donnerstag 22. Juni 2017, 17:22
von BlackJack
@pyzip: Schau Dir mal in der Matplotlib-Dokumentation die Beispiele für Animationen an.
Re: plot in Schleife beenden
Verfasst: Donnerstag 22. Juni 2017, 22:22
von pyzip
@BlackJack,
danke und ich habe es befürchtet. Finde die PLOT-Geschichten sehr kompliziert und hatte gehoft, dass man den "schließ Fenster Klick" vom Script aus senden kann. Ok, dann ran an die Doku.
Gruß Rainer
Re: plot in Schleife beenden
Verfasst: Donnerstag 22. Juni 2017, 23:17
von BlackJack
@pyzip: Fenster schliessen und wieder neu anzeigen bedeutet letztendlich das die Fensterverwaltung das neue Fenster auch woanders anzeigen kann als das alte. Selbst wenn das Fenster immer an der gleichen Stelle wieder auftaucht, wäre das IMHO schon ziemlich nervig anzusehen. Und dann gibt's ja noch die Benutzer die für das Anzeigen/Schliessen von Fenstern irgendwelche grafischen Effekte eingestellt haben.
Re: plot in Schleife beenden
Verfasst: Donnerstag 22. Juni 2017, 23:47
von pyzip
@BlackJack,
ich weiß jetzt natürlich nicht, was alles passiert, wenn das plot-fenster geschlossen wird. Aber in meinem Fall ist das Aufpoppen des nächsten Fensters kein Problem. Wenn ich das alte Fenster schließe, dann dauert es lange bis ganz lang - je nach Trainingssatz - bis das nächste Fenster aufgeht. Und zum Schluß habe ich ja eh den Plot mit allen Errorwerten. Wäre halt schön, die Entwicklung schon während der Rechnerei sehen zu können.
Re: plot in Schleife beenden
Verfasst: Freitag 23. Juni 2017, 13:41
von pyzip
@BlackJack,
bin gestern noch zufällig auf "plt.ion()" mit "plt.draw()" gestossen und habe es einfach mal eingebaut. Funktioniert bei Epochenzeiten im Minutenbereich. Am Ende des Skripts habe ich noch " eingabe = input("Ihre Eingabe? ") ", damit der vollständige Plot sichtbar bleibt, bis man eine Taste drückt. Gestern Abend habe ich dann noch eine mehrstündige Epochenzeit gestartet und heute morgen war das Skript samt IDE geschlossen. Habe dasselbe dann erneut gestartet und gerade war wieder alles weg. Nun weiß ich natürlich nicht, ob das an meinem Plot-Konstrukt liegt oder ob das Programm aussteigt.
Meine Frage ist: ist .ion() der richtige Weg oder passiert hier was ganz anderes, als ich denke?? Verstanden habe ich, dass .ion() die Plotfunktion interaktiv macht und damit die Blockierung von plot.show() aufhebt. Aber was passiert, wenn ich das Interaktive nicht nutze, finde ich nirgenwo beschrieben. Bin ich schwer auf dem Holzweg??
Gruß Rainer