Vorschläge für die nächste Version
-
- Posts: 7
- Joined: Sun 16. Nov 2008, 23:42
Vorschläge für die nächste Version
Hallo Thomas, hallo Forumsbesucher,
ich wollte mich mal nützlich für die Gesellschaft machen und hier eine Sache anmerken und einen Verbesserungsvorschlag angeben.
Verbesserung: wenn man in Membrain etwas lädt (Lessons z.B.) dann startet das Ladefenster immer im Stammordner von Membrain. Ich speichere die Lessons aber immer im selben Ordner wie die *.mbn Ginge es, dass man immer in dem Ordner startet, in dem die *.mbn liegt?
Ich lade öfter mal verschiedene Lessons in den Lesson Editor und muss mich immer ewig durch klicken (mein Dateisystem ist verwinkelter als das Labyrinth in Knossos
Klar ist nur ne Kleinigkeit und auch nur sinnvoll, wenn das Ausbessern schnell geht und auch vom Rest erwünscht wird.
Die Anmerkung: wenn ich über das Beispielskript (von der Homepage) versuche die "Think on Lesson" Funktion zu nutzen, dann stürzt das Programm immer ab und es kommt die Fehlermeldung, die ich an den Thread angehängt habe. Und das egal auf welchem Rechner ich Membrain installiere. Echt komisch
Viele Grüße aus Erlangen
Alex
ich wollte mich mal nützlich für die Gesellschaft machen und hier eine Sache anmerken und einen Verbesserungsvorschlag angeben.
Verbesserung: wenn man in Membrain etwas lädt (Lessons z.B.) dann startet das Ladefenster immer im Stammordner von Membrain. Ich speichere die Lessons aber immer im selben Ordner wie die *.mbn Ginge es, dass man immer in dem Ordner startet, in dem die *.mbn liegt?
Ich lade öfter mal verschiedene Lessons in den Lesson Editor und muss mich immer ewig durch klicken (mein Dateisystem ist verwinkelter als das Labyrinth in Knossos
Klar ist nur ne Kleinigkeit und auch nur sinnvoll, wenn das Ausbessern schnell geht und auch vom Rest erwünscht wird.
Die Anmerkung: wenn ich über das Beispielskript (von der Homepage) versuche die "Think on Lesson" Funktion zu nutzen, dann stürzt das Programm immer ab und es kommt die Fehlermeldung, die ich an den Thread angehängt habe. Und das egal auf welchem Rechner ich Membrain installiere. Echt komisch
Viele Grüße aus Erlangen
Alex
- Attachments
-
- fehlermeldung.JPG
- (96.98 KiB) Downloaded 496 times
Re: Vorschläge für die nächste Version
Hallo Alex,
vielen Dank für die Rückmeldungen!
Die Sache mit den Dateipfaden beim Öffnen im Lesson-Editor macht definitiv Sinn. Das werde ich für die nächste Version vormerken: Wenn ein Netz geladen ist, dann sollte der Lesson-Editor beim Öffnen von Dateien am besten auch diesen Pfad als Default verwenden.
Die Fehlermeldung kann ich allerdings bei mir nicht nachvollziehen. Verwendest Du die aktuelle MemBrain Version 03.02.00.01?
Es gab einen Bug, der das von Dir beobachtete Verhalten erklären würde, der wurde aber bereits in der Version 03.01.04.00 behoben.
Kannst Du mir das betreffende Skript einmal zusenden oder es posten zusammen mit einer genauen Beschreibung, wie der Fehler zu reproduzieren ist? Auch die Dateien, die Dein Skript verwendet, sollten dabei sein.
Vielen Dank und viele Grüße!
vielen Dank für die Rückmeldungen!
Die Sache mit den Dateipfaden beim Öffnen im Lesson-Editor macht definitiv Sinn. Das werde ich für die nächste Version vormerken: Wenn ein Netz geladen ist, dann sollte der Lesson-Editor beim Öffnen von Dateien am besten auch diesen Pfad als Default verwenden.
Die Fehlermeldung kann ich allerdings bei mir nicht nachvollziehen. Verwendest Du die aktuelle MemBrain Version 03.02.00.01?
Es gab einen Bug, der das von Dir beobachtete Verhalten erklären würde, der wurde aber bereits in der Version 03.01.04.00 behoben.
Kannst Du mir das betreffende Skript einmal zusenden oder es posten zusammen mit einer genauen Beschreibung, wie der Fehler zu reproduzieren ist? Auch die Dateien, die Dein Skript verwendet, sollten dabei sein.
Vielen Dank und viele Grüße!
Thomas Jetter
Re: Vorschläge für die nächste Version
Hallo Alex,
die neue MemBrain-Version, die gerade online gegangen ist, enthält u.a. auch Deinen Vorschlag bzgl. der Default-Pfade im Lesson-Editor.
Leider konnte ich wegen des von Dir beobachteten Bugs noch nichts unternehmen, da ich ihn wie gesagt bei mir nicht reproduzieren kann. Kannst Du dazu nochmals Details posten, bitte?
Danke und viele Grüße
die neue MemBrain-Version, die gerade online gegangen ist, enthält u.a. auch Deinen Vorschlag bzgl. der Default-Pfade im Lesson-Editor.
Leider konnte ich wegen des von Dir beobachteten Bugs noch nichts unternehmen, da ich ihn wie gesagt bei mir nicht reproduzieren kann. Kannst Du dazu nochmals Details posten, bitte?
Danke und viele Grüße
Thomas Jetter
-
- Posts: 7
- Joined: Sun 16. Nov 2008, 23:42
Re: Vorschläge für die nächste Version
Hallo Thomas,
sorry dass ich mich jetzt erst melde. Ich muss noch einmal die neuste Version in der Uni installieren. Dann kann ich dir sagen, ob das Problem behoben ist. Werde ich hoffentlich die Tage schaffen. Bin als Studienberater gerade ordentlich eingespannt
Aber ich melde mich sobald ich die neuste Version ausprobiert habe!
Alex
sorry dass ich mich jetzt erst melde. Ich muss noch einmal die neuste Version in der Uni installieren. Dann kann ich dir sagen, ob das Problem behoben ist. Werde ich hoffentlich die Tage schaffen. Bin als Studienberater gerade ordentlich eingespannt
Aber ich melde mich sobald ich die neuste Version ausprobiert habe!
Alex
-
- Posts: 7
- Joined: Sun 16. Nov 2008, 23:42
Re: Vorschläge für die nächste Version
Hi Thomas,
so ich habe die neuste Version installiert und es klappt immer noch nicht. Ich poste mal die Dateien als zip File. Anders lässt er sie mich nicht hoch laden.
Also die Fehlerbeschreibung:
Ich führe das Skript "skriptexample.txt" aus, was nur das auf der Homepage angebotene Beispiel ist, das ich noch angepasst habe. In der ursprünglichen Datei stand "think_on_lessen" um die Ergebnisse dann in der Datei "ValidateResult.csv" zu speichern. Sobald er aber zu dem Schritt kommt stürzt er auf meinem Rechner, und auch auf dem bei mir zu Hause und denen in der Arbeit ab. Auch mit der neusten Membrain Version vom 24.11. Jetzt lasse ich ihn einfach 8 Sekunden warten und klicke mich einfach mit "Think on next input" durch.
Wichtig ist noch, dass du falls du den Grenzwert für den Fehler nicht herunter stellt den Lernprozess per Hand abschalten musst (Stop teacher). Das habe ich gemacht, weil ich das so ganz gut im Gefühl hatte wann er noch generalisieren kann und bis zu welcher Grenze er auswendig lernt.
Ich hoffe sehr du kannst mir helfen
Viele Grüße
Alex
so ich habe die neuste Version installiert und es klappt immer noch nicht. Ich poste mal die Dateien als zip File. Anders lässt er sie mich nicht hoch laden.
Also die Fehlerbeschreibung:
Ich führe das Skript "skriptexample.txt" aus, was nur das auf der Homepage angebotene Beispiel ist, das ich noch angepasst habe. In der ursprünglichen Datei stand "think_on_lessen" um die Ergebnisse dann in der Datei "ValidateResult.csv" zu speichern. Sobald er aber zu dem Schritt kommt stürzt er auf meinem Rechner, und auch auf dem bei mir zu Hause und denen in der Arbeit ab. Auch mit der neusten Membrain Version vom 24.11. Jetzt lasse ich ihn einfach 8 Sekunden warten und klicke mich einfach mit "Think on next input" durch.
Wichtig ist noch, dass du falls du den Grenzwert für den Fehler nicht herunter stellt den Lernprozess per Hand abschalten musst (Stop teacher). Das habe ich gemacht, weil ich das so ganz gut im Gefühl hatte wann er noch generalisieren kann und bis zu welcher Grenze er auswendig lernt.
Ich hoffe sehr du kannst mir helfen
Viele Grüße
Alex
- Attachments
-
- KNN Alex Kutter.zip
- (4.54 KiB) Downloaded 926 times
Re: Vorschläge für die nächste Version
Hallo Alex,
vielen Dank für die Dateien, werde es mir bei nächster Gelegenheit mal anschauen.
Grüße
vielen Dank für die Dateien, werde es mir bei nächster Gelegenheit mal anschauen.
Grüße
Thomas Jetter
Re: Vorschläge für die nächste Version
Hallo Alex,
mit Deinen Dateien konnte ich den Fehler jetzt nachvollziehen und schon mal einkreisen, ich werde ihn möglichst bald beheben.
Zur Ursache muss ich etwas ausholen:
MemBrain führt beim ersten Verwenden einer neuen Lesson (oder wenn deren Struktur sich verändert, z.B. neue Spalten) einen Abgleich mit dem Netz durch (Check auf identische I/O Namen). Dabei werden zur Performance-Optimierung den Spalten der Lesson direkt Ihre Neuronen zugewiesen (über Pointer).
Wenn nun das Kontrollkästchen 'Output Data' im Lesson-Editor nicht gesetzt ist, dann wird dieser Abgleich nicht für die Ausgangsdaten/-Neuronen durchgeführt, da MemBrain davon ausgehen muss, dass diese nicht zusammenpassen und deshalb vom Benutzer dieses Kästchen gesetzt wurde. Es ist also dazu da, die Input-Daten einer Lesson verwenden zu können, ohne dass die Outputdaten zu den Ausgangsneuronen passen. Typischerweise macht man das, wenn man nur Input-Daten hat, aber auch ein oder mehrere Ausgangsneuronen.
Nun ist seit Version 03.00.05.00 ein zusätzlicher Check implementiert: Bevor 'Think On Lesson' oder 'Teach' ausgeführt wird, prüft MemBrain auf Einhaltung der Normalisierungsgrenzen durch die aktuelle Lesson. Leider beachtet dieser Check nicht das besagte Kontrollkästchen und versucht, auch die Limits für die Ausgangsneuronen zu prüfen, die ja aber während des Abgleichs nicht zugewisen wurden. Damit versucht MemBrain auf einen Nullpointer zuzugreifen und es kracht...
Die gute Nachricht ist: Für Dich gibt es einen einfachen 'Workaround':
Unterlasse einfach die Aufrufe
LESSON_OUTPUTS NO
in Deinem Skript. Setze zur Sicherheit ganz oben, direkt vor
LESSON_COUNT 3
die Zeile
LESSON_OUTPUTS YES
Das führt dazu, dass vor dem Erzeugen der neuen leeren Lessons das Häkchen gesetzt ist und die neuen Lessons somit auch mit Häkchen erzeugt werden.
Damit läuft Dein Skript schon mal ohne Absturz durch.
Jetzt musst Du nur Deinen Eintrag
SLEEP 8000
wieder durch
SLEEP THINK_END
ersetzen und alles ist OK.
Meld' Dich doch bitte nochmal, wenn Du es ausprobiert hast.
Der Bug wird, wie gesagt, so schnell wie möglich behoben, da er schon 'fies' ist, tausend Dank nochmal für die Meldung!
Übrigens verletzen Deine Validierungsdaten die Normalisierungsgrenzen des Netzes. Allerdings wird bei Ausführung von 'ThinkLesson' durch ein Skript keine Meldung gegeben. Ich werde mal darüber nachdenken, ob es Sinn macht, ein Skript durch so eine Meldung anzuhalten oder nicht... ich denke aber eigentlich schon.
Viele Grüße
mit Deinen Dateien konnte ich den Fehler jetzt nachvollziehen und schon mal einkreisen, ich werde ihn möglichst bald beheben.
Zur Ursache muss ich etwas ausholen:
MemBrain führt beim ersten Verwenden einer neuen Lesson (oder wenn deren Struktur sich verändert, z.B. neue Spalten) einen Abgleich mit dem Netz durch (Check auf identische I/O Namen). Dabei werden zur Performance-Optimierung den Spalten der Lesson direkt Ihre Neuronen zugewiesen (über Pointer).
Wenn nun das Kontrollkästchen 'Output Data' im Lesson-Editor nicht gesetzt ist, dann wird dieser Abgleich nicht für die Ausgangsdaten/-Neuronen durchgeführt, da MemBrain davon ausgehen muss, dass diese nicht zusammenpassen und deshalb vom Benutzer dieses Kästchen gesetzt wurde. Es ist also dazu da, die Input-Daten einer Lesson verwenden zu können, ohne dass die Outputdaten zu den Ausgangsneuronen passen. Typischerweise macht man das, wenn man nur Input-Daten hat, aber auch ein oder mehrere Ausgangsneuronen.
Nun ist seit Version 03.00.05.00 ein zusätzlicher Check implementiert: Bevor 'Think On Lesson' oder 'Teach' ausgeführt wird, prüft MemBrain auf Einhaltung der Normalisierungsgrenzen durch die aktuelle Lesson. Leider beachtet dieser Check nicht das besagte Kontrollkästchen und versucht, auch die Limits für die Ausgangsneuronen zu prüfen, die ja aber während des Abgleichs nicht zugewisen wurden. Damit versucht MemBrain auf einen Nullpointer zuzugreifen und es kracht...
Die gute Nachricht ist: Für Dich gibt es einen einfachen 'Workaround':
Unterlasse einfach die Aufrufe
LESSON_OUTPUTS NO
in Deinem Skript. Setze zur Sicherheit ganz oben, direkt vor
LESSON_COUNT 3
die Zeile
LESSON_OUTPUTS YES
Das führt dazu, dass vor dem Erzeugen der neuen leeren Lessons das Häkchen gesetzt ist und die neuen Lessons somit auch mit Häkchen erzeugt werden.
Damit läuft Dein Skript schon mal ohne Absturz durch.
Jetzt musst Du nur Deinen Eintrag
SLEEP 8000
wieder durch
SLEEP THINK_END
ersetzen und alles ist OK.
Meld' Dich doch bitte nochmal, wenn Du es ausprobiert hast.
Der Bug wird, wie gesagt, so schnell wie möglich behoben, da er schon 'fies' ist, tausend Dank nochmal für die Meldung!
Übrigens verletzen Deine Validierungsdaten die Normalisierungsgrenzen des Netzes. Allerdings wird bei Ausführung von 'ThinkLesson' durch ein Skript keine Meldung gegeben. Ich werde mal darüber nachdenken, ob es Sinn macht, ein Skript durch so eine Meldung anzuhalten oder nicht... ich denke aber eigentlich schon.
Viele Grüße
Thomas Jetter
Re: Vorschläge für die nächste Version
Hallo Alex,
noch eine kurze Anmerkung:
In Deinem Fall, wo die Validierungs-Lesson Ausgangsdaten hat, ist es ohnehin besser, diese zu aktivieren, da Du dann im Pattern Error Viewer direkt nach dem THINK_LESSON Soll und Ist grafisch vergleichen kannst.
Grüße
noch eine kurze Anmerkung:
In Deinem Fall, wo die Validierungs-Lesson Ausgangsdaten hat, ist es ohnehin besser, diese zu aktivieren, da Du dann im Pattern Error Viewer direkt nach dem THINK_LESSON Soll und Ist grafisch vergleichen kannst.
Grüße
Thomas Jetter
-
- Posts: 7
- Joined: Sun 16. Nov 2008, 23:42
Re: Vorschläge für die nächste Version
Hi Thomas,
ja richtig geil. Funktioniert ohne Probleme
Das wird meinen HiWi freuen, der sich jetzt noch die Finger wund klickt
Vielen Dank dafür. An unserem Lehrstuhl findest du mit deinem Programm/deiner Arbeit und meiner Werbung viele Anhänger. Wir sollten ne Firma gründen
Schönen Abend noch!!!!
Alex
ja richtig geil. Funktioniert ohne Probleme
Das wird meinen HiWi freuen, der sich jetzt noch die Finger wund klickt
Vielen Dank dafür. An unserem Lehrstuhl findest du mit deinem Programm/deiner Arbeit und meiner Werbung viele Anhänger. Wir sollten ne Firma gründen
Schönen Abend noch!!!!
Alex
Re: Vorschläge für die nächste Version
Hallo Alex,
freut mich, dass es jetzt klappt und natürlich vielen Dank für die Werbung!
Mir ist da bei Deinem Skript noch etwas aufgefallen, von dem ich mir nicht ganz sicher bin, ob es Absicht oder Versehen ist:
Die Zeile
RECORDING_TYPE OUT
legt fest, dass Du bei der Validierung nicht die auf Deinen Datenbereich umgerechneten Aktivitäten aufzeichnest, sondern die normalisierten Ausgangssignale Deiner Neuronen. Damit liegen Deine aufgezeichneten Daten alle im Bereich 0..1, weil MemBrain intern auf diese normalisiert.
Wenn Du also Deine 'echten' Daten sehen willst, dann musst Du
RECORDING_TYPE ACT
in Dein Skript schreiben oder die Zeile ganz weglassen (die Einstellung ist nach dem Start von MemBrain der Default).
Hinschreiben ist natürlich immer sicherer, dann wird eine evtl. fehlerhafte Einstellung auf jeden Fall überschrieben.
Viele Grüße,
freut mich, dass es jetzt klappt und natürlich vielen Dank für die Werbung!
Mir ist da bei Deinem Skript noch etwas aufgefallen, von dem ich mir nicht ganz sicher bin, ob es Absicht oder Versehen ist:
Die Zeile
RECORDING_TYPE OUT
legt fest, dass Du bei der Validierung nicht die auf Deinen Datenbereich umgerechneten Aktivitäten aufzeichnest, sondern die normalisierten Ausgangssignale Deiner Neuronen. Damit liegen Deine aufgezeichneten Daten alle im Bereich 0..1, weil MemBrain intern auf diese normalisiert.
Wenn Du also Deine 'echten' Daten sehen willst, dann musst Du
RECORDING_TYPE ACT
in Dein Skript schreiben oder die Zeile ganz weglassen (die Einstellung ist nach dem Start von MemBrain der Default).
Hinschreiben ist natürlich immer sicherer, dann wird eine evtl. fehlerhafte Einstellung auf jeden Fall überschrieben.
Viele Grüße,
Thomas Jetter