Ich dachte, dass Batch-Größe nur für die Leistung ist. Je größer der Stapel, desto mehr Bilder werden gleichzeitig berechnet, um mein Netz zu trainieren. Aber ich habe festgestellt, dass meine Nettogenauigkeit besser wird, wenn ich meine Stapelgröße ändere. Also habe ich nicht verstanden, was Batchgröße ist. Kann mir jemand erklären, was Chargengröße ist?Was ist Batch-Größe in Caffe oder Convnets
Antwort
Caffe wird trainiert mit Stochastic-Gradient-Descend (SGD): das heißt, bei jeder Iteration berechnet es den (stochastischen) Gradienten der Parameter w.r.t der Trainingsdaten und macht eine Bewegung (= Änderung der Parameter) in Richtung des Gradienten.
Nun, wenn Sie die Gleichungen des Gradienten schreiben w.r.t. Trainingsdaten Sie werden feststellen, dass, um den Gradienten genau zu berechnen, müssen Sie alle Ihre Trainingsdaten bei jeder Iteration berechnen: das ist unerschwinglich Zeit, vor allem, wenn die Trainingsdaten größer und größer wird.
Um dies zu überwinden, approximiert SGD den exakten Gradienten auf stochastische Weise, indem nur ein kleiner Teil der Trainingsdaten bei jeder Iteration genommen wird. Dieser kleine Teil ist die Charge.
Je größer also die Losgröße, desto genauer ist die Gradientenschätzung bei jeder Iteration.
TL; DR: Die Batchgröße beeinflusst die Genauigkeit des geschätzten Gradienten bei jeder Iteration, ändert also die Batchgröße und beeinflusst somit den "Pfad" der Optimierung und kann die Ergebnisse des Trainingsprozesses verändern.
. @ Shai - So 'Batch-Größe' sollte klein oder groß sein? Ich stoße sehr oft auf "auf Daten warten" und es wirkt sich auf meine Trainingszeit aus. AlexNet lief zweimal nacheinander. –
- 1. Batchgröße in Spark Streaming
- 2. Caffe: Wie wählt man die maximal verfügbare Batchgröße, die in den Speicher passt?
- 3. Ist tf.nn.softmax_cross_entropy_with_logits für die Batchgröße verantwortlich?
- 4. Was bedeutet CXX beim Caffe?
- 5. Was ist der Meta Parameter "weight_decay" in Caffe?
- 6. Caffe-Feature-Extraktion ist zu langsam? caffe.Classifier oder caffe.Net
- 7. Was bedeutet Caffe - Blob Class - Mitgliedsvariablen?
- 8. Mongodb was ist schneller $ in oder $ oder?
- 9. Euklidische Verlustschicht in Caffe
- 10. Verschiedene Eingangskanäle in Caffe verschmelzen?
- 11. Caffe Autoencoder
- 12. Anzahl der Parameter in Caffe LENET- oder Imagine-Modellen
- 13. Über binäre Klassifizierung in Caffe
- 14. Caffe Installation
- 15. Was ist das? Template-Methode oder was?
- 16. Wer oder was ist '_mbsetupuser'?
- 17. Caffe: Installieren Sie modifizierte Caffe-Projekte unter Windows
- 18. Was ist $ .expr [":"] in JavaScript oder jQuery?
- 19. Was ist schneller IN oder OR?
- 20. Was ist define * in Guile oder Schema?
- 21. Mehrere vortrainierte Netzwerke in Caffe
- 22. Funktionen extrahieren von Caffe
- 23. LMDB für Caffe generieren
- 24. Fully convolutional net in Caffe
- 25. Caffe Multiple Input Images
- 26. Multi-Label-Regression in Caffe
- 27. Monitor Training/Validierungsprozess in Caffe
- 28. Was bedeutet C-zusammenhängende Mode im Caffe Blob Storage?
- 29. Wie wird die Inferenzzeit von der durchschnittlichen Durchlaufzeit in Caffe geschätzt? mein ConvNet in caffe
- 30. Caffe vollkonvolutionell CNN
Soweit ich weiß, ist Batch-Größe die Größe von Bildern, die von der Festplatte abgerufen wird, wenn die Maschine Berechnungen mit den vorab abgerufenen Daten durchführt. Durch diese Technik versucht Caffe irgendwie, die Lesezeit von der Festplatte zu kompensieren. – Saeed
Aber wenn ich meine Batchgröße ändere, bekomme ich eine bessere Genauigkeit. Ich hab es nicht verstanden. – Pasdf