2016-07-08 2 views

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.

+0

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

+0

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. –

Verwandte Themen