automatische Einstellung der aktiven Range für die Neuronen

Haben Sie Fragen zur Bedienung bestimmter Features von MemBrain? Sind Sie nicht sicher, welches Häkchen was bewirkt? Möchten Sie wissen, ob eine bestimmte Funktionalität in MemBrain vorhanden ist oder nicht?

Dann stellen Sie Ihre Fragen hier!
Post Reply
Despero
Posts: 1
Joined: Wed 12. Aug 2009, 12:05

automatische Einstellung der aktiven Range für die Neuronen

Post by Despero »

Hallo MemBrain-User,

ich möchte Membrain aus MATLAB heraus aufrufen.

Die zum Teachen bereitgestellten Daten werden als CSV-Dateien (Raw) importiert. Diese Operationen funktionieren einwandfrei.

Ich möchte gerne von der Möglichkeit Gebrauch machen, den aktiven Range der Input- und Output-Neuronen auf den Werteberich der csv-Daten abzustimmen. Diese Funktion ist über die Einstellung „EXTRAS; Normalization Wizard“ manuell aufrufbar.

In meinem MATLAB-Programm ich folgenden Aufruf programmiert:
[EMBRetVal, w1, w2] = calllib('lib_mebrain', 'MB_GetInputActRange', i-1, Input_min(i), Input_max(i));

Vor dem Aufruf werden die Werte von Input_min(i) und Input_max(i) für jeden Input aus der csv-Datei ermittelt.

Das gleiche tue wir ich mit dem Output-Range.

Beide Aufrufe verändern aber die Normalisierung nicht. Die Werte w1 und w2 sind die zuvor bei der Konfiguration eingestellten Werte. Durch die fehlende Normalisierung ist das Teach-Ergebnis dementsprechend schlecht.

Ich vermute, dass 'MB_GetInputActRange' nicht funktioniert. Das Kommando „GET“ deutet darauf hin, dass der eingestellte Wert nur gelesen wird.

Fragen:
Gibt es einen geeigneteren Befehl, die Normalisierung wirksam werden zu lassen?
oder
Gibt es eine Einstellung im Object Propertie-Dialogfeld, die ein Überschreiben der zuvor manuell im Normalization Settings festgelegten Werte erlaubt?

Wir würden uns über eine Antwort freuen

Viele Grüße von Despero
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: automatische Einstellung der aktiven Range für die Neuronen

Post by Admin »

Despero wrote:Ich vermute, dass 'MB_GetInputActRange' nicht funktioniert. Das Kommando „GET“ deutet darauf hin, dass der eingestellte Wert nur gelesen wird.
Das ist korrekt, die Funktion ist ein reiner 'Getter'. Die MemBrain DLL bietet im Moment leider nicht die Möglichkeit, die Normalisierungseinstellungen zu verändern. So etwas ist jedoch natürlich problemlos nachrüstbar und bestimmt eine sinnvolle Erweiterung, die ich gerne für ein nächstes Release in Betracht ziehe.
Despero wrote:Gibt es einen geeigneteren Befehl, die Normalisierung wirksam werden zu lassen?
Nein, über die DLL wie gesagt nicht.
Allerdings möchte ich Sie noch auf eine andere Möglichkeit hinweisen, die Sie nutzen könnten: Ich weiß nicht, ob Sie schon Erfahrungen mit der integrierten Skriptsprache von MemBrain gemacht haben? Es handelt sich dabei um eine C++/C# ähnliche und sehr leistungsfähige Skriptsprache. Diese bietet neben vielen anderen Funktionen auch die Möglichkeit, Netze zu erstellen und zu editieren, was natürlich auch die Normalisierungseinstellungen beinhaltet. Es gibt im Download-Bereich auch Skript-Code, der direkt das Normalisieren auf Basis einer geladenen 'Lesson' über ein Skript unterstützt.
Die DLL verfügt zwar nicht über die Fähigkeit, Skripte auszuführen. Allerdings können Sie die MemBrain Hauptanwendung (MemBrain.exe) mit der Kommandozeilenoption '/s' gefolgt vom Namen eines Skripts aufrufen. MemBrain startet dann und führt automatisch das Skript aus. Im Skriptcode können Sie MemBrain auch anweisen, sich zu minimieren, so dass das Hauptfenster nur kurz sichtbar sein wird. Ebenso gibt es einen Skriptbefehl, der MemBrain beendet, so dass Sie also Ihr Skript so schreiben können, dass sich MemBrain nach erfolgreicher Abarbeitung des Skripts automatisch wieder beendet.
Bitte lassen Sie es mich wissen, wenn das für Sie eine Option sein könnte und Sie dazu weitere Hilfe benötigen, eventuell auch als Zwischenlösung, solange die DLL die Einstellung der Normalisierungsgrenzen noch nicht unterstützt. Im Forum finden Sie außerdem auch evtl. interessante Skripte von anderen Benutzern.
Despero wrote:Gibt es eine Einstellung im Object Propertie-Dialogfeld, die ein Überschreiben der zuvor manuell im Normalization Settings festgelegten Werte erlaubt?
Ich fürchte, die Frage verstehe ich noch nicht ganz. Sie können für jedes In- oder Output-Neuron die Normalisierungsgrenzen entweder manuell (im Property-Dialogfeld, Button 'Normalization') einstellen, oder den 'Normalization Wizard' aufrufen, der für alle momentan markierten Neuronen Einstellungen auf Basis der momentan aktiven Lesson im Lesson-Editor vorschlägt.
Beantwortet das Ihre Frage?

Viele Grüße
Thomas Jetter
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: automatische Einstellung der aktiven Range für die Neuronen

Post by Admin »

Hallo nochmal,

seit gestern ist eine neue MemBrain Version online, zusammen mit einer neuen Version der DLL, welche nun auch die gewünschten Funktionen MB_SetInputActRange und MB_SetOutputActRange bietet.

Viele Grüße
Thomas Jetter
Post Reply