Skript zum Prüfen von Netz und Roh-CSV

Dieses Forum beschäftigt sich mit allen Fragen, Kommentaren und Anregungen zu MemBrain Skripten. Auch der Austausch von Skripten zwischen MemBrain Benutzern soll hiermit gefördert werden.
Wenn Sie ein interessantes Skript haben, das Sie anderen MemBrain Benutzern zur Verfügung stellen wollen, dann Erstellen Sie dafür jeweils bitte ein neues Thema in diesem Forum. Der Titel des Themas sollte es anderen Benutzern erlauben möglichst schnell zu erfassen, wozu Ihr Skript dient.
Post Reply
User avatar
TJetter
Posts: 346
Joined: Sat 13. Oct 2012, 12:04

Skript zum Prüfen von Netz und Roh-CSV

Post by TJetter »

Das unten angefügte Skript lädt ein Netz und importiert ein zugehöriges CSV File.

Anschließend prüft das Skript, ob die Spaltennamen in der importierten Lesson eindeutig sind und ob sie alle im Netz ihre Entsprechungen durch Ein- und Ausgangsneuronen haben.
Die Ergebnisse werden in eine Textdatei geschrieben, so dass die Fehlersuche bzgl. der Namen im CSV File bzw. im Netz vereinfacht wird.

Zur Vorgehensweise:

Einfach das Zip-File entpacken, es erstellt automatisch ein entsprechendes Unterverzeichnis. Dann das Skript in MemBrain ausführen über -Scripting-Execute Script...-
Das Unterverzeichnis enthält ein kleines Beispielnetz und CSV File, bei denen diverse Probleme bzgl. Kompatibilität festgestellt werden. Diese sollten für eigene Anwendungen natürlich gelöscht und durch die eigenen zu prüfenden Dateien ersetzt werden.

Viele Grüße
Attachments
IoCompatibility.zip
Skript zur Kompatibilitätsprüfung von Netz und Roh-CSV Datei
(2.76 KiB) Downloaded 1160 times
Thomas Jetter
nnbrainer
Posts: 2
Joined: Thu 30. Jan 2014, 16:25

Re: Skript zum Prüfen von Netz und Roh-CSV

Post by nnbrainer »

Hallo Zusammen,

ich habe eine Frage zum vorhergehenden Post.
Das Skript zum Pruefen von Netz und Roh-CSV funktioniert bei mir nur bei Netzen und zugehoerigen CSV Files die sowieso keine Fehler machen.
Aber der Reihe nach, mein Vorgehen war wie folgt:
1. Zip entpacken
2. Inhalt von AnalysisResults.txt loeschen
3. Membrain (mit V06.00.01.00 und V06.00.00.00 getestet) starten
4. Membrain -> Scripting -> Execute Script... -> IoCompatibility.as auswaehlen -> Open

Daraufhin erhalte ich folgende Meldung im Fenster Script Trace:
Compiling and Starting Script:
C:\Users\___\IoCompatibility\IoCompatibility.as

0 Error(s).
0 Warning(s):

Script has been started successfully!

MemBrain Script Engine Message:

C:\Users\___\IoCompatibility\IoCompatibility.as :

Abortion due to command execution error

Details: Unable to import raw csv lesson file Test.csv

--Ende Meldung

Das File AnalysisResults.txt bleibt leider leer.

Wenn ich anstelle der Testfiles eigene Files (bei denen ich weis alles passt) nehme (natuerlich mit angepasstem Script) funktioniert alles wie es soll und im Textfile bekomme ich sinngemaess die Meldung alles OK.
Manipuliere ich hingegen meine eigenen Files um eine Fehlermeldung zu erzeugen bekomme ich diese leider nicht im Textfile.

Was mache ich falsch? Ich habe die Vermutung es is nur eine Kleinigkeit die ich uebersehe.
Schon mal vielen dank im Voraus fuer die Hilfe.
User avatar
TJetter
Posts: 346
Joined: Sat 13. Oct 2012, 12:04

Re: Skript zum Prüfen von Netz und Roh-CSV

Post by TJetter »

Hallo,
nnbrainer wrote: 1. Zip entpacken
2. Inhalt von AnalysisResults.txt loeschen
3. Membrain (mit V06.00.01.00 und V06.00.00.00 getestet) starten
4. Membrain -> Scripting -> Execute Script... -> IoCompatibility.as auswaehlen -> Open
Das kann ich leider nicht nachvollziehen, habe es eben gestestet und bei mir funktioniert es klaglos.

Wenn es wirklich noch nicht einmal mit den im zip file enthaltenen Beispiel-Dateien funktioniert, dann kann es nur daran liegen, dass auf Ihrem Rechner die Einstellung für Spaltentrennzeichen nicht auf die (mit einem deutschen Betriebssystem erzeugte) csv-Datei passt. Diese verwendet das Semikolon (';') als Trennzeichen, als Dezimalstellenkomma das Komma (',') und als Tausendertrennzeichen den Punkt ('.').
Wenn Ihr Betriebssystem hier andere EInstellungen verwendet (weil z.B. eine Englische Version oder anders eingestellt), dann funktioniert zwar MemBrain CSV-Import bzw. Export in Zusammenarbeit mit anderen Programmen auf Ihrem Rechner (z.B. Excel), nicht aber in Verbindung mit der csv-Datei aus dem Beispiel.

Ob das der Fall ist, können Sie leicht feststellen:
In MemBrain im Lesson-Editor geben Sie ein paar Werte ein und exportieren diese in eine CSV-Datei (Lesson-Editor Menüpunkt 'Raw CSV Files' - 'Export Current Lesson Raw').
Öffnen Sie diese Datei mit einem Texteditor und schauen Sie sich die darin vorkommenden Trennzeichen an. MemBrain richtet sich hierbei nach Ihren Betriebssystemeinstellungen, um maximale Kompatibilität innerhalb Ihrer Arbeitsumgebung zu schaffen.
Über Ländergrenzen hinweg sind deshalb CSV-Files nicht ganz so unproblematisch...

Prinzipiell gilt übrigens für das Skript: Die Anzahl Spalten im CSV-File muss der Summe der Input- und Output-Neuronen des geladenen Netzes entsprechen, sonst wird der Import stets gar nicht vollzogen und das Skript bricht ab.

Viele Grüße
Thomas Jetter
nnbrainer
Posts: 2
Joined: Thu 30. Jan 2014, 16:25

Re: Skript zum Prüfen von Netz und Roh-CSV

Post by nnbrainer »

Solved!

Vielen Dank fuer die schnelle Antwort!
Ich arbeite heute an einem Rechner mit englischem Betriebssystem (und leider auch Tastatur wie man an den fehlenden, wie schreibe ich das jetzt, u"-Strichen sehen kann).

Hier noch der passende Workaround sollte jemand mal auf ein aehnliches Problem stossen und die Sprach- bzw. Laendereinstellung nicht aendern koennen oder wollen.
Einfach das csv-File mit einem Texteditor oeffnen und ueber suchen/ersetzen alle ; , und . in das gewuenschte Format konvertieren.

Tja da sieht man mal was so ein winzig kleiner . fuer eine Auswirkung haben kann.

Ach ja und ein Standard ist das wovon es immer mindestens zwei gibt ;)
Post Reply