Hallo Seppy und Jojo,
ein paar kleine Anmerkungen hätte ich noch beizusteuern:
Seppy wrote:Wenn Du die "MemBrainLessons/MBL Dateien" laden willst, mußt Du das "Raw" im Script-Befehl weglassen.
Aus:
ImportLessonRaw("Train.csv");
Muß dann werden:
ImportLesson("Train.mbl");
Das ist nicht ganz richtig, es muss 'LoadLesson("Train.mbl")' heißen, wenn mbl-Dateien geladen werden sollen. 'ImportLesson' lädt hingegen Dateien aus dem MemBrain-eigenen, speziellen CSV-Format (ich habe es 'Sectioned CSV' Format genannt).
Im Prinzip gilt das Folgende bzgl. Vor- und Nachteilen der Formate:
mbl Format:
*Schnellste Lade/Speicherzeit, kann ohne Probleme auch mit riesigen Datenmengen umgehen.
*Benötigt beim Laden keine vor-formatierte Lesson im Lesson-Editor, da alle Informationen bzgl. In/Output-Namen enthalten sind.
*In der Regel kleinste Dateigröße
*Keine Probleme beim Austausch zwischen Rechnern unterschiedlicher Ländereinstellungen
--> Solange man die Daten nicht lesbar in der Datei braucht immer das optimale Dateiformat. Kann aber nur mit MemBrain geöffnet werden. Von dort muss man in CSV exportieren, wenn man die Daten lesbar haben will.
Raw CSV Format:
*Lesbares Format
*Austausch mit vielen anderen Programmen (z.B. Excel)
*Format abhängig von den Ländereinstellungen des Rechners
*Enthält keine Informationen über die Anzahl der In-und Outputs. Deshalb klappt der Raw CSV Import nur, wenn die Lesson im Lesson-Editor so vor-formatiert ist, dass die Anzahl der Ein- und Ausgänge zur gewünschten Spaltenaufteilung in der CSV-datei passt. Das kann man z.B. durch 'Names From Net' erreichen.
MemBrain Sectioned CSV Format
*Lesbares Format
*Austausch mit anderen Programmen (z.B. Excel). Allerdings hat man dann in z.B. Excel noch weitere Textzellen im Tabellenblatt, also nicht nur die eigentlichen Daten.
*Benötigt beim Laden keine vor-formatierte Lesson im Lesson-Editor, da alle Informationen bzgl. In/Output-Namen enthalten sind.
*Format abhängig von den Ländereinstellungen des Rechners
Seppy wrote:Beim "thinking" solltest Du aufpassen, ich hab in meiner "Think.csv" NUR EINE Zeile stehen.
Hast Du mehrere Zeilen drin, wird bei jedem "Denkvorgang/thinking" das Netz verändert, die zweite thinking-Zeile arbeitet also schon NICHT MEHR mit dem zuvor trainierten Netz, sondern mit dem durch Think-1 veränderten Netz.
Also entweder immer nur eine Zeile in die Thinkdatei, oder das TRAINIERTE Netz vor jedem think neu laden...
Das ist für Dich, Seppy, korrekt, da Du ein zeitvariantes Netz hast (Du arbeitest ja mit Zeitreihen). Jojo hat aber ein einfacheres, zeitinvariantes Netz. D.h., bei einem 'Think' ist es Jojos Netz vollkommen egal, was vorher der interne Netzzustand war. Wenn man an Jojos Netz Input-Daten anlegt und dann 'Think' ausführt, kommt also immer das selbe heraus, solange man das Netz nicht durch training verändert, unabhängig davon, wie viele andere 'Thinks' vorher durchgeführt wurden.
jojo wrote:Ist das Thinking.as dann auch automatisch trainiert oder muss ich da noch etwas abspeichern?
Also zunächst mal wird nie ein Skript trainiert, sondern natürlich nur das Netz. Letzteres ist nach dem Beenden von Traintime.as trainiert und bleibt es auch. D.h., Du kannst sofort mit 'Think' loslegen. Bevor Du MemBrain schließt solltest Du eben speichern, wenn das Netz gut trainiert wurde. Das Netz wird dann natürlich auch in trainiertem Zustand abgespeichert. Du musst also nicht jedesmal wenn Du das Netz lädtst neu trainieren, falls Du das meinen solltest...
Viele Grüße,
Thomas