In Tensorflow, welche Anweisungen innerhalb eines Diagrammdefinitionsblocks werden nur ausgeführt, um den Graphen zu erstellen, der während des Trainings ausgeführt wird? Zum Beispiel:Tensorflow: Welche Graph-Anweisungen werden ausgeführt, nachdem der Graph erstellt wurde?
with tf.Graph().as_default():
weightsLayer1 = tf.Variable(tf.truncated_normal([nInputUnits, nOutputUnits]))
weightsLayer1 = tf.div(weightsLayer1, tf.sqrt(tf.to_float(nInputUnits)))
biasesLayer1 = tf.Variable(tf.zeros([nUnitsHiddenLayer1]))
layer1output = tf.tanh(tf.matmul(images_placeholder, weightsLayer1) + biasesLayer1)
Intuitiv, die Linien definierten weightsLayer1
und biasesLayer1
Ich gehe davon aus, wenn beim Start nur dann ausgeführt werden, da sie Gewichtungen und Bias initialisieren. Allerdings nehme ich an, dass die Linienberechnung layer1output
bei jedem Trainingsschritt ausgeführt wird, da layer1output
stromabwärts verwendet wird, um Verluste zu berechnen, die vom Optimierer minimiert werden. Also, wie kann Tensorflow während des Trainings wissen, dass nur die letzte Zeile und nicht die vorherigen ausgeführt werden (was die Gewichte und Verzerrungen neu initialisiert)?
Aus meinem Verständnis werden alle Ihre obigen Aussagen verwendet, um den Graphen zu erstellen und während des Trainings werden nur die Wege zum Zug ausgeführt. Die Initialisierung erfolgt nur einmal - das bedeutet, dass Ihre zweite Anweisung tf.div auch zur Zeit des Zuges ausgeführt wird. – shekkizh