Für mein Universitätsprojekt erstelle ich ein neuronales Netzwerk, das die Wahrscheinlichkeit klassifiziert, dass eine Kreditkartentransaktion betrügerisch ist oder nicht. Ich trainiere mit Backpropagation. Ich schreibe das in Java. Ich möchte Multithreading anwenden, weil mein Computer ein Quad-Core i7 ist. Es nervt mich, stundenlang zu trainieren und die meisten meiner Kerne im Leerlauf zu sehen.Wie kann ich Multithreading auf das Backpropagation Neural Network Training anwenden?
Aber wie würde ich Multithreading auf Backpropagation anwenden? Backprop funktioniert, indem die Fehler rückwärts durch das Netzwerk angepasst werden. Eine Schicht muss gemacht werden, bevor die andere fortfahren kann. Gibt es irgendeine Möglichkeit, dass ich mein Programm ändern kann, Multicore-Hintergrund zu tun?
Wie verschmelzen Sie die Gewichte? Was "Zusammenführen" bedeutet hier, Sie fügen sie alle hinzu? – PeeS
Gewichte werden nicht zusammengeführt. Ich berechne die Gradienten in jedem Thread und sie werden in einem Reduzierungsschritt summiert. Wie die Gradienten auf die Gewichte angewendet werden, hängt vom verwendeten Trainingsalgorithmus ab, aber die Gewichtsaktualisierung wird in einem kritischen Abschnitt durchgeführt. Wenn Sie wesentlich mehr Trainings-Samples als Gewichte haben, verbringt der Code viel mehr Zeit in der Multithreading-Gradientenberechnung als die Gewichtsaktualisierung des kritischen Abschnitts. – JeffHeaton
Ihr Link liefert eine "Seite nicht gefunden". –