2017-03-03 2 views
1

Angenommen, wir haben Trainingseinheiten mit 500.000 Einheiten, ist es dann wichtig, ob wir das Modell für ein Objekt oder für ein Objekt gleichzeitig trainieren?Ist die Größe der Trainingsdaten für eine Epoche Materie in Tensorflow?

Anbetracht inputTrainingData und outputTrainingData seine [[]] und train_step jeder generischer tensorflow Trainingsschritt sein.

Option 1 Zug ein Element zu einem Zeitpunkt -

for i in range(len(inputTrainingData)): 
    train_step.run(feed_dict={x: [inputTrainingData[i]], y: [outputTrainingData[i]], keep_prob: .60}, session= sess) 

Option 2 Zug auf alle auf einmal -

train_step.run(feed_dict={x: inputTrainingData, y: outputTrainingData, keep_prob: .60}, session= sess) 

Gibt es einen Unterschied zwischen den Optionen 1 und 2 als wie ist die Qualität der Ausbildung betroffen?

+0

es normalerweise verwendet, weil es wenige Speicher und Ausbildung verwendet, kann schneller sein als auch durch häufiges Gewicht Updates .Qualitätsmäßig sollte es nicht viel ausmachen, aber sehr kleine Chargen können zu weniger genauen Vorhersagen führen. – umutto

+0

Sie könnten auf Chargen der Größe 100 trainieren. – CrisH

+0

@umutto Danke. 'sehr kleine Chargen weniger genau '- also, Batch-Größe von 1 kann signifikante Änderungen im Training machen? – Achilles

Antwort

1

Ja, es gibt einen Unterschied. Option 1 ist viel weniger Speicher, ist aber auch viel weniger genau. Option 2 könnte Ihren gesamten RAM auffressen, sollte sich aber als genauer erweisen. Wenn Sie jedoch alle Trainingseinheiten gleichzeitig verwenden, sollten Sie die Anzahl der Schritte begrenzen, um eine Überanpassung zu vermeiden. Verwenden Sie idealerweise Daten in Stapeln (normalerweise zwischen 16 und 256). Die meisten Optimierungstechniken sind "stochastisch", d. H. Sie beruhen auf einer statistischen Stichprobe von Beispielen, um eine Modellaktualisierung zu schätzen. - mehr Daten => mehr Genauigkeit (aber mehr Speicher) => höheres Risiko der Überanpassung (so begrenzen Sie die Anzahl der Trainingsschritte)

+0

Danke für die ausführliche Antwort. Ich bekomme bessere Ergebnisse mit der Batch-Größe von 1 Ansatz, aber ich denke, es ist wahrscheinlich wegen schlechter Daten oder etwas. – Achilles

1

Es gibt einen Unterschied zwischen diesen Optionen. Normalerweise müssen Sie eine Stapelgröße verwenden, um beispielsweise 128 Iterationen von Daten zu trainieren. Sie könnten auch eine Batchgröße von eins verwenden, wie die ersten Beispiele. Der Vorteil dieser Methode ist, dass Sie die Trainingseffizienz des neuronalen Netzwerks ausgeben können.

Wenn Sie alle Daten an einem lernen, werden Sie bi ein bißchen schneller, aber Sie werden nur am Ende wissen, ob Sie effizient sind.

Der beste Weg ist, eine Batchgröße zu machen und nach Stack zu lernen. So können Sie nach jedem Stack effizient ausgeben und effizient steuern.

0

Mathematisch sind diese beiden Methoden unterschiedlich. Einer wird als stochastischer Gradientenabfall bezeichnet und der andere als Batch-Gradientenabfall bezeichnet. Sie vermissen den am häufigsten verwendeten Mini-Batch-Gradienten-Abstieg. Es wurde viel zu diesem Thema geforscht, aber grundsätzlich haben unterschiedliche Chargengrößen unterschiedliche Konvergenzeigenschaften. Im Allgemeinen verwenden die Benutzer Stapelgrößen, die größer als eins sind, aber nicht den gesamten Datensatz. Dies ist normalerweise notwendig, da die meisten Datensätze nicht gleichzeitig in den Speicher passen. Wenn das Modell eine Stapelnormalisierung verwendet, konvergiert auch eine Stapelgröße von eins nicht. Diese paper diskutiert die Auswirkungen der Batch-Größe (unter anderem) auf die Leistung. Der Vorteil ist, dass größere Chargengrößen nicht verallgemeinern. (Sie argumentieren tatsächlich, dass es nicht die Batch-Größe selbst ist, sondern die Tatsache, dass Sie weniger Updates haben, wenn die Charge größer ist. Ich würde Batchgrößen von 32 empfehlen, um zu starten und zu experimentieren, um zu sehen, wie die Batchgröße die Leistung beeinflusst hier ist eine grafische Darstellung der Auswirkungen der Chargengröße auf der Ausbildung und Validierung Leistung aus dem Papier verbunden I.

enter image description here

Verwandte Themen