2016-08-06 3 views
0

Ich bin neu bei Tensorflow und wollte nur klarstellen, dass ich nicht auf dem Test-Set trainiere, wenn ich nicht für den Optimierungsknoten im Graphen rufe.Bestätigung, dass ich nicht auf dem Testgerät trainiere

Hier ist ein Optimiererknoten;

opt = tf.train.GradientDescentOptimizer(learning_rate = learning_rate) 
opt_operation = opt.minimize(mse) 

Hier ist mein Trainingsschritt. Ich wollte nur klarstellen, dass nur die Knoten in den eckigen Klammern berechnet werden; opt_operation wird aufgerufen, damit die Gewichte im Modell aktualisiert werden?

_,yPred_,loss, score = sess.run([opt_operation,yPred,mse,diceScore], 
           feed_dict={x:batchX,y_:batchY,learning_rate:lr}) 

Schließlich ist hier mein Testschritt, der nicht opt_operation nicht nennen.

loss,score = sess.run([mse,diceScore], 
         feed_dict={x:batchX,y_:batchY}) 

Es ist die Ausbildung nicht korrekt in diesem letzten Schritt sess.run?

Antwort

1

Ja, richtig. Der Trainingsschritt wird nur ausgeführt, wenn opt_operation ausgeführt wird.

Ihr letzter Schritt:

loss,score = sess.run([mse,diceScore], 
        feed_dict={x:batchX,y_:batchY}) 

Wertet nur die mse und die diceScore Tensoren: keine Optimierung durchgeführt wird.

Verwandte Themen