WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Grafik in Workspace zwischenspeicher?

 

MasterofDesaster
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 17.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.04.2010, 22:50     Titel: Grafik in Workspace zwischenspeicher?
  Antworten mit Zitat      
Hallo,

ich habe ein kleines Problem (Programmierung + Grafik):
Ich lasse zur Identifikation des besten Neuronalen Netzes eine geskriptete Auswertung durchführen, dabei soll mir das Programm die Performance des besten Netzes grafisch darstellen.

Die Schwierigkeit hierbei ist, das der nachfolgende Befehl die Trainigns-Performance des letzten Netzes darstellt.

Ich habe also eine Abfrage geschrieben, die dafür sorgt, dass jedes mal ein Plot erstellt wird, wenn das neue Netz besser ist. Das führt aber dazu, dass Matlab sehr viele Bilder erstellen muss die ich hinterher nicht benötige.

Ich kann sie zwar schließen, aber lieber wäre es mir, wenn Matlab die Bilder gar nicht erst öffnet, sondern nur in der Oberfläche (Workspace) zwischenspeichert.

Geht das? Wenn, wie? Habe ich noch andere Möglichkeiten um den Prozess zu beschleunigen, bzw. effizienter zu gestalten?

Code:

Performencechart = plotperform(tr);
Bildname = [ExportPfad,'Bilder\', Dateiname];    
set(Performencechart,'position',[0 0, 800 550]) set(Performencechart,'PaperPositionMode','Auto')
close(Performencechart);



Gruß und Dank
Desaster
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 15.04.2010, 09:21     Titel:
  Antworten mit Zitat      
Ich bin noch nicht sicher, ob ich das Problem verstehe. In diesem Beispeil wird einfach die erste Figure hergenommen:

Code:

clear all
close all
clc

for k=1:10
    surf(rand(30))
    pause(1)
end
 


Es enstehen also nicht 10 Figures. Was ist da anders?

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
MasterofDesaster
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 17.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.04.2010, 13:58     Titel:
  Antworten mit Zitat      
Hallo Andreas,

ich versuche es noch Mal etwas anders zu erklären.

Ich habe beispielsweise zehn Netze die ich Trainiere und das sechste ist das beste. Diese Information wie gut das Netz ist und wie die Trainingsperformance war, erhalte ich "nur" direkt nach dem Training des jeweiligen Netzes.
Da ich aber im vor hinein nicht weiß welches Netz das beste ist, muss ich sämtlich Informationen zwischenspeichern.
Das Netz und dessen Trainingsergebnis kann ich einfach in einer Variablen speichern, da Performance, da es sich dabei um ein Bild handelt aber nicht.

Bisher läuft meine Programmierung so ab:
Das erste Netz wird trainiert und die Performance wird als Bild dargestellt. Anschließend wird das nächste Netz trainiert und wenn dieses besser ist, wir das Performancebild überschrieben. Ist es schlechter dann nicht.
Auf diese Weise habe ich am Ende das Bild der Performance des besten Netzes.

Allerdings ist dies sehr aufwendig und macht die Versuche sehr langsam.
Daher die Frage ob es eine Möglichkeit gibt das Bild in einer Variablen im Workspace zu parken.

Gruß
Desaster
Private Nachricht senden Benutzer-Profile anzeigen
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 15.04.2010, 16:51     Titel:
  Antworten mit Zitat      
Hallo Desater,

ein Bild kann man nicht als Variable speichern. Allerdings nehme ich stark an, dass Du Dein Bild aus Daten erzeugst, die man als Variable abspeichern kann. Auf welche Weise ermittelst Du denn, welches das beste Netz ist? Musst Du dafür das Bild betrachten und eine Entscheidung treffen oder wird da etwas berechnet und Werte verglichen? Im ersten Fall lässt sich das Öffnen der Bilder wohl nicht vermeiden, im zweiten könnte man das Erstellen des Performance-Bildes einfach an den Schluss des Algorithmus verschieben, wenn schon feststeht, welches Netz das beste ist. Dazu müsstest Du nur die Daten speichern, aus denen das Bild erstellt wird.

Falls diese Antwort wieder an Deiner Fragestellung vorbeigeht, gib doch bitte ein Testbeispiel an.

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
MasterofDesaster
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 17.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.04.2010, 19:45     Titel:
  Antworten mit Zitat      
Hi Bijick,

dein zweiter Fall ist der richtige. Es gibt eine Kenngröße die mir sagt, ob das Netz das beste ist oder nicht.
Allerdings kann ich meines Wissens nach den Trainingsvorgang selbst nicht abspeichern, da dieser jedes Mal anders ablaufen soll.
Und ich habe leider keine Ahnung wie ich an die Daten des Graphen komme.

Den Befehl der Toolbox habe ich ja schon gepostet:
Code:
plotperform(tr);


Ich weiß nicht mal aus wie vielen Punkten oder Daten der Graph überhaupt besteht. Daher habe ich einfach mal ein Bild angehangen.

Gruß
Desaster

Versuch.jpg
 Beschreibung:

Download
 Dateiname:  Versuch.jpg
 Dateigröße:  26.95 KB
 Heruntergeladen:  466 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
LittleX
Forum-Guru

Forum-Guru


Beiträge: 494
Anmeldedatum: 14.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.04.2010, 09:10     Titel:
  Antworten mit Zitat      
Hallo,

wenn ich Dich richtig verstehe, rufst Du in einem Skript mehrmals den Befehl train mit verschiedenen Eingaben auf. Du hast dann eine Kenngröße, die Dir sagst, ob das aktuelle Netz das beste ist (jedenfalls zu der Zeit).
plotperform macht ja nichts anderes als die Struktur, die von train zurückgeliefert wird grafisch darzustellen. Warum speicherst Du Dir dann nicht Dein tr als z.B. tr_best zwischen (wenn die Kenngröße stimmt) und rufst plotperform ganz am Ende Skripts einmalig mit tr_best auf?

Viele Grüße,

LittleX
Private Nachricht senden Benutzer-Profile anzeigen
 
MasterofDesaster
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 17.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.04.2010, 13:08     Titel:
  Antworten mit Zitat      
Hallo LittleX,

vielen dank für den Tipp,
das werde ich gleich mal ausprobieren Smile

Und es funktioniert Very Happy Super!

Gruß
Desaster
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.