2017-05-11 8 views
4

Als ich Tensorflow zum ersten Mal mit dem MNIST-Dataset einsetzte, hatte ich einen wirklich einfachen Bug, bei dem ich vergessen hatte, meine Fehlerwerte zu nehmen, bevor ich sie an den Optimierer übergab.Tensorflow Optimizer - mehrere Verlustwerte zur Minimierung()?

Mit anderen Worten, statt

loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=y, labels=y_)) 

habe ich aus Versehen

loss = tf.nn.softmax_cross_entropy_with_logits(logits=y, labels=y_) 

nicht den Mittelwert oder die Summe der Fehlerwerte nehmen keine Fehler warf, wenn das Netzwerk trainiert, aber. Dies führte mich zu denken: Gibt es tatsächlich einen Fall, wenn jemand mehrere Verlustwerte in einen Optimierer übergeben müsste? Was passierte, als ich mit einem Tensor der Größe [1] in minimize() überging?

Antwort

3

Sie werden addiert. Dies ist Nebenprodukt von TensorFlow mit Reverse-Modus AD zu unterscheiden, die Verlust erfordert, um ein Skalar sein

+0

Also, wenn Sie einen Tensor übergeben, minimieren Sie im Grunde die Summe aller Werte im Tensor? –

+1

;;;;;;;;;;;;;;;; ja –