Page 1 of 1

scripting for noobs

Posted: Thu 17. Nov 2011, 15:00
by Andreas
Hallo.
habe im beim ausführen eines scripts folgendes problem:
beim durchlaufen einer for-schleife wird immer nur der letzte input neuron hinzugefügt.
for (i = 0; i < 10; i++);
{
posX = i*10;

input = input + i;
hidden = hidden + i;
AddInput(posX, 40, input);
AddHidden (posX, 120, hidden);
}
der position und dem namen nach zu urteilen, wird die schleife schon durchlaufen.
was mache ich falsch?

Re: scripting for noobs

Posted: Thu 17. Nov 2011, 20:19
by Admin
Andreas wrote:for (i = 0; i < 10; i++);
Das Problem ist der ';' hinter obiger Zeile, der muss weg.
So wie es da steht, läuft zunächst die ganze Schleife ab (und tut nichts als von 0 bis 9 zu zählen), dann wird der Anweisungsblock darunter (in den geschweiften Klammern) abgearbeitet ;-)

Zusätzlicher Tip:

Den horizontalen Abstand größer wählen und in MemBrain die Option <View><Snap To Grid> deaktivieren.

Oder aber die Neuronen so platzieren, dass sie auf dem Grid liegen (dazu gibt es auch Script-Funktionen, die die Grid SIze und den nächsten Gridpoint zurückgeben).

Viele Grüße,

Re: scripting for noobs

Posted: Fri 18. Nov 2011, 10:43
by Andreas
danke für die antwort.
habe das problem mit einer while schleife gelöst, weil die for schleife auch trotz richtiger Syntx nicht ordnungsgemäß funktioniert hat.
jetzt habe ich ein anderes problem. und zwar beim Ausführen von einer Lesson kommt immer wieder die Meldung "Lesson is not in correct format for net".
Wie kann ich denn herausfinden was genau da nicht passt?
habe ein .csv file geschrieben, was so aussieht:
input1;input2;input3;output1;output2
wert;wert;wert;wert;wert

Re: scripting for noobs

Posted: Fri 18. Nov 2011, 20:41
by Admin
Andreas wrote:Meldung "Lesson is not in correct format for net".
Wie kann ich denn herausfinden was genau da nicht passt?
MemBrain assoziiert Spaltennamen in einer Lesson mit Neuronennamen im Netz. Zu jedem Input- und Outputneuron muss MemBrain eine Spaltenentsprechung in den Inputs bzw. Outputs der Lesson finden (gleiche Namen, Case-Sensitiv).
Wenn diese Übereinstimmung nicht gefunden wird, dann erscheint die genannte Fehlermeldung.

Beheben kann man das dann, in dem man entweder die Namen des Netzes auf die Spaltennamen der Lesson überträgt oder umgekehrt die Spaltennamen der Lesson auf das Netz überträgt. Das geht im Lesson Editor über die Buttons 'Names From Net' bzw. 'Names To Net'. Es gibt auch sinngemäß benannte Scriptbefehle hierzu.

Wenn man genau wissen möchte, welche Übereinstimmungen nicht gefunden werden, kann man das Script anwenden, das in folgendem Post abgelegt ist:

viewtopic.php?f=13&t=64

Viele Grüße