Hallo,
Da ich trotz debugger und Prints nicht ganz weiter komme fehlt mir für heute jegliche Auswegsmöglichkeit...
Das Netzsieht folgendermaßen aus: 11 Inputs (Layer 0), 6Hidden Neuonen (Layer 1), 6Hidden Neuonen (Layer 2),9Hidden Neuonen (Layer 3), 3Output Neuonen (Layer 4).
Hier der ProblemOutput: wobei das problem in folgendem kurszausschnitt liegt:
für weight gilt [Sendeneuronen][Empfängerneuronen][Layer]
für NET gilt [Neuron][Layer] wobei L=0 die inputs X enthällt ( hier könnte der fehler liegen, jedoch habe ich den loop auch schon so probiert, ohne X als L =0 zu initialisieren (gab den Fehler, bei denen NET nicht weitergegeben wurde)
Hier der fertige gekürzte Code: (Output printet sich automatisch bei initialisierung)
PS: falls jemand weiß wie ich diesen Thread wenige Tage nach der erstellung als "solved" umbenennen kann, werde ich dies selbstverständlich tun.
Du. Rauchst nur die lösung posten, dann ist es automatisch klar
Hallo,
Da ich trotz debugger und Prints nicht ganz weiter komme fehlt mir für heute jegliche Auswegsmöglichkeit...
Das Netzsieht folgendermaßen aus: 11 Inputs (Layer 0), 6Hidden Neuonen (Layer 1), 6Hidden Neuonen (Layer 2),9Hidden Neuonen (Layer 3), 3Output Neuonen (Layer 4).
Hier der ProblemOutput: wobei das problem in folgendem kurszausschnitt liegt:
für weight gilt [Sendeneuronen][Empfängerneuronen][Layer]
für NET gilt [Neuron][Layer] wobei L=0 die inputs X enthällt ( hier könnte der fehler liegen, jedoch habe ich den loop auch schon so probiert, ohne X als L =0 zu initialisieren (gab den Fehler, bei denen NET nicht weitergegeben wurde)
Hier der fertige gekürzte Code: (Output printet sich automatisch bei initialisierung)
PS: falls jemand weiß wie ich diesen Thread wenige Tage nach der erstellung als "solved" umbenennen kann, werde ich dies selbstverständlich tun.
- Kannst Du mal Deinen Code besser Kommentieren zB. was ist X[], oder was ist welcher Schleife geschehen soll ...
- Das kann so nicht funktionieren:
for(int l = 0; l<Layers+1;l++) { int Neurons =0; if (l == Layers) {Neurons = 1;} // es gilt immer l<Layer in der Schleife!!
So etwas zeigt aber eigentlich ein Debugger..
- Kannst Du mal Deinen Code besser Kommentieren zB. was ist X[], oder was ist welcher Schleife geschehen soll ...
- Das kann so nicht funktionieren:
So etwas zeigt aber eigentlich ein Debugger..
Layers ist ein input int (Layers = 4); wärend die ArraySize (nach meinem verständnis) einen Weight Layer mehr haben dürfte.daher ist auch auch eine +1 da ( ich weiß seltsamer syntax aber keine idee wie ich es sonst hätte lösen können):
for(int l = 0; l<Layers +1 ;l++) { int Neurons =0; if (l == Layers) {Neurons = 1;} // es gilt irgendwann l==Layer in der Schleife!!
Das Problem ist, dass die berechneten Neuronen nach dem letzten Loop ("j") verschwinden, wenn ich sie ausserhalb dessen aus NET[i][l+1] abrufe (ist mit pfeilen gekennzeichnet)
EDIT: LÖSUNG gefunden und oben geschrieben.
Thread kann geschlossen werden
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Hallo,
Da ich trotz debugger und Prints nicht ganz weiter komme fehlt mir für heute jegliche Auswegsmöglichkeit...
Das Netzsieht folgendermaßen aus: 11 Inputs (Layer 0), 6Hidden Neuonen (Layer 1), 6Hidden Neuonen (Layer 2),9Hidden Neuonen (Layer 3), 3Output Neuonen (Layer 4).
Hier der ProblemOutput: wobei das problem in folgendem kurszausschnitt liegt:
für weight gilt [Sendeneuronen][Empfängerneuronen][Layer]
für NET gilt [Neuron][Layer] wobei L=0 die inputs X enthällt ( hier könnte der fehler liegen, jedoch habe ich den loop auch schon so probiert, ohne X als L =0 zu initialisieren (gab den Fehler, bei denen NET nicht weitergegeben wurde)
EDIT: LÖSUNG: Man kann innerhalb eines Loops (zumindest dem 3. loop) nicht einen Arrayeintrag ständig ändern (aufaddieren durch +=)
stattdessen ist es sinnvoll vor besagtem loop einen leeren double zu deklarieren (f_sum), auf diesen aufzuaddieren und diesen letztenendes in den Arrayeintrag zu initialisieren.
PS: falls jemand weiß wie ich diesen Thread wenige Tage nach der erstellung als "solved" umbenennen kann, werde ich dies selbstverständlich tun.