Druck mal alle(!) relevanten Werte aus, also auch Layers, i, NeuronenArray[i]-1.
Allerdings würde ich genau so etwas mit dem Debugger machen und oben als ersten Wert _LastError eintragen
Alles so wie es sein sollte (ausser das bereits nach ArrayResize() exponentielle zahlen vorliegen, ist aber normal soweit ich weiß). Debugger hatte auch keinen neuen Hinweis geliefert, also hatte ich euch die Print()s mit angegeben. GetLastError() ebenfalls 0.
wenn ich das NeuronenArray[i] entferne und stattdessen 10 eintippe funktioniert FillArray() (Arrays werden als input scheinbar nicht akzeptiert). Aber so kann ich doch unmöglich ein NN mit Inputs betreiben.
Hast du eine Idee Carl?
int Neuronen = NeuronenArray[i];
Verbesserungsvorschlag ist dennoch wilkommen :)
Hier die fertige Lösung für künftige Gernerationen mit ähnlichem Problem:
input int Layers = 4 // amount of Layers the NN should consist of input int Neuronen_L1 = 10; // amount of neurons the first layer should consist of double NeuronenArray[]; // here the amount of Neurons for a layer should be stored e.g. NeuronenArray[0] = Neuronen_L1 = 10 (10 neurons in the first layer) ... NeuronenArray[1] = Neuronen_L2 = 10 (X neurons in the first layer) ArrayResize(NeuronenArray,Layers); double weight_L1[],weight_L2[],weight_L3[],weight_L4[],weight_L5[]; for (int i=0;i<Layers;i++) { //--- place weights into the array if (i+1 == 1){NeuronenArray[i] = Neuronen_L1; ArrayResize(weight_L1,NeuronenArray[0]); Print(weight_L1[0]);Print(weight_L1[1]);Print(weight_L1[2]);Print(weight_L1[3]);Print(weight_L1[4]);} // print-> so that you can see } for (int i=0;i<Layers;i++) { if (i+1 == 1) {int Neuronen = NeuronenArray[i]; ArrayFill(weight_L1,0,NeuronenArray[i]-1,0.5); Print(weight_L1[0]);Print(weight_L1[1]);Print(weight_L1[2]);Print(weight_L1[3]);Print(weight_L1[4]);} // print-> so that you can see }
- 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.
Hey, ich möchte eine neuronale Netzwerkstruktur mit dem obigen Code erstellen.
Das Problem: Wenn ich versuche, die Gewichte einer Ebene zu füllen, ändert sich durch FillArray () nichts (zur Vereinfachung habe ich nur den Code für die erste Ebene gezeigt).
Haben Sie eine Idee, warum und was getan werden könnte?
Die Ausgabe ist immer wie folgt: (Die ersten beiden Ebenen mit einer seltsamen Nummer und den restlichen Nullen, aber tatsächlich hat sich nichts geändert, seit der erste Lopp das Gleiche gedruckt hat.)