Es scheint ein wenig umständlich zu sein, die Batch-Dimension für jede Schicht in einem neuronalen Netzwerk zu berücksichtigen. Warum haben wir nicht eine Funktionalität in Tensorflow, die nur die Batch-Größe für ein ganzes Modell festlegen kann?Warum müssen wir uns bei der Angabe eines Modells in Tensorflow um die Batch-Dimension kümmern?
2
A
Antwort
2
Im Tensorflow müssen Sie nicht berücksichtigen die Batch-Größe berücksichtigen.
In der MNIST Tutorial wird erklärt, wie Tensorflow Chargen jeder Größe handhabt.
Zitiert das Tutorial:
x = tf.placeholder(tf.float32, shape=[None, 784])
y_ = tf.placeholder(tf.float32, shape=[None, 10])
die Eingangsbilder x eines 2D-Tensor Gleitkommazahlen bestehen. Hier weisen wir ihm eine Form von [None, 784]
zu, wobei 784 die Dimensionalität eines einzelnen abgeflachten MNIST-Bildes ist, und None
zeigt an, dass die erste Dimension, die der Losgröße entspricht, eine beliebige Größe haben kann.
Verwandte Themen
- 1. Checkstyle: Warum sollten wir uns als Entwickler darum kümmern?
- 2. Müssen wir uns noch Sorgen machen, dass Nutzer Cookies deaktivieren?
- 3. Warum müssen wir die init-Methode angeben?
- 4. Ausführen eines Tensorflow-Modells unter Android
- 5. Warum müssen wir vor() warten()?
- 6. Warum müssen wir die Variable __block auf Null setzen?
- 7. Beacon: Warum müssen wir Tx power
- 8. Delegierte, kann mich nicht um sie kümmern
- 9. Warum können wir uns selbst nicht in eine Methode "entplattieren"?
- 10. Wenn Sie Pausen in die if-Anweisungen setzen müssen, warum müssen wir uns mit den Bedingungen in der while-Operation beschäftigen?
- 11. Hooks: Warum müssen wir VirtualProtect() erneut ausführen, um Berechtigungen wiederherzustellen?
- 12. Beispiel zum Bereitstellen eines Tensorflow-Modells über eine RESTful-API
- 13. Warum müssen wir die wahre Position in Kalman-Filtern schätzen?
- 14. Warum müssen wir poll_wait in der Umfrage aufrufen?
- 15. Fehlerbehebung bei der Referenzierung eines Modells in einem Laravel-Controller
- 16. Warum müssen wir Lua's collectgarbage() zweimal anrufen?
- 17. Warum müssen wir Platz vor% c setzen?
- 18. die richtige Art, Bilder zum Testen des Tensorflow-Modells einzugeben
- 19. Warum müssen wir UpdateWindow nach ShowWindow aufrufen?
- 20. Warum müssen wir eval JSON Klammern hinzufügen?
- 21. XmlSerializer-Leistungsproblem bei der Angabe von XmlRootAttribute
- 22. Warum müssen wir die Cache-Größe klein halten?
- 23. Warum müssen wir die run() -Methode überschreiben Thread-Klasse
- 24. Warum ist die Angabe eines generischen Arguments als Schnittstelle kein Fehler bei einer Klassenbeschränkung?
- 25. Warum müssen wir ./ für die Ausführung Shell-Skript verwenden
- 26. Warum müssen wir die Klassen Apply und Applicative type unterscheiden?
- 27. Warum kann ich die Objekteigenschaften eines Mongoose-Modells nicht löschen?
- 28. Warum müssen wir Dilect definieren, wenn wir Treiber bereits in der Konfigurationsdatei im Ruhezustand definiert haben
- 29. Warum starten wir den Server bei Änderung der Datei neu?
- 30. Warum gewichten wir die jüngsten Belohnungen bei nichtstationärem Verstärkungslernen höher?
Ich verstehe diesen Teil. Ich verstehe, dass die Batch-Größe nicht im Voraus festgelegt werden muss. Variablen für jede Ebene tragen jedoch immer noch die Größe der Stapelgröße, und Sie müssen sich immer Gedanken über diese Dimension machen, wenn Sie alles in Ihr Modell schreiben, insbesondere für Umformungen. Ich spreche über ein Szenario, in dem Variablen diese Dimension überhaupt nicht tragen, aber am Ende, sagen Sie, replizieren Sie dasselbe Diagramm für jede Probe im Batch. Dies kann viel Komplexität sparen. – user3320467
Tensorflow ist ein generisches Berechnungsframework. Einige Ops führen Batch-Operationen aus, einige haben kein Batch-Konzept. Beispiele für letztere sind Matmul und all die verschiedenen elementweisen Operationen wie Tanh und Tensor-Addition. Diese folgen nur numply-artigen Übertragungsregeln. Jeder Batch-Vorgang würde die Tensorflow-API einschränken und die Entwicklung neuer Operationen erschweren. –