2017-05-11 4 views
4

MNIST 데이터 세트에서 Tensorflow를 처음 사용했을 때, 나는 옵티 마이저에 전달하기 전에 내 오류 값을 의미하는 것을 잊어 버린 아주 간단한 버그가있었습니다.Tensorflow Optimizers - minimize()에 여러 손실 값 전달?

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

, 대신에 내가 실수

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

그러나, 네트워크를 훈련 할 때 오류를 던졌다없는 오류 값의 평균 또는 합계를 복용 사용하지 않음. 이것은 나를 생각하게 만들었습니다 : 실제로 누군가가 여러 손실 값을 옵티 마이저에 전달해야 할 필요가 있습니까? minimize()에 크기가 아닌 Tensor를 전달했을 때 무슨 일이 벌어 졌습니까?

답변

3

그들은 합산됩니다. 이것은 TensorFlow의 차별화 된 기능인 Reverse Mode AD를 사용하여 분화가 필요합니다. 손실이 스칼라이어야합니다.

+0

따라서 텐서를 전달하면 기본적으로 텐서의 모든 값의 합이 최소화됩니까? –

+1

;;;;;;;;;;;;;;;;; 예 –