Ich war die Überprüfung der Caffe Lenet Tutorial here und eine Frage in den Sinn kam:Caffe Lenet: Unterschied zwischen `solver.step (1)` und `solver.net.forward()`
Was ist der Unterschied zwischen diesen ist 2-Codes:
self.solver.step(1)
und
self.solver.net.forward() # train net
beide scheinen das Netzwerk zumindest nach dem Kommentar zu trainieren.
Persönlich denke ich, der erste trainiert das Netzwerk auf den Trainingsdaten und aktualisiert die Gewichte von net
und test_net
, aber die zweite scheint nur eine Charge von Daten weiterzuleiten und die gelernten Gewichte aus dem vorherigen Schritt anzuwenden.
Wenn was ich denke, ist richtig, was ist der Zweck des zweiten Codes in der Anleitung? Warum hat der Code eine net.forward
? kann nicht solver.step(1)
dies selbst tun?
Vielen Dank für Ihre Zeit
Danke ... wenn charge_size 100 (von 2000 Bildern) ist, dann macht step() die 3 Phasen auf 100 Chargen oder 2000 Chargen? – Cypher
Schritt macht nur eine Iteration: eine einzelne Charge von 100 Bildern. Das Ausführen eines vollständigen Satzes von 20 Stapeln (alle 2000 Eingaben) wird als * Epoche * bezeichnet. – Prune
Ich bin froh, Ihnen helfen zu können. Danke für die Abstimmung und den grünen Check. – Prune