0

나는 cnn에 대한 mnist 예제를 사용했습니다. https://www.tensorflow.org/versions/r0.10/tutorials/mnist/pros/index.html 내 28x28 이미지를 처리하기 위해 약간 변경했습니다. 나는 2 개의 클래스를 가지고 있고, 이미지는 눈이나 벽이다.Tensorflow - Convolutionary Net : 그레이 스케일 대 흑백 훈련

나는 rgb와 그레이 스케일 이미지가 어떤 훈련 개선에도 이르지 못했음을 발견했다. 정확도는 상수 0.5였다. 이미지가 흑백으로 변환되는 동안 (image.convert ('1') 포함) 매우 빠르게 학습되었습니다. 배치 크기가 20 인 200 회 반복 이후 정확도는 약 0.9입니다.

그레이 스케일 이미지가 향상되지 않는 이유는 무엇입니까?

성능 향상을 위해 수행 할 수있는 작업은 무엇입니까?

편집 1 .. 난 그냥 무슨 일이 일어나고 있는지 시각화하는 TensorBoard을 사용하고 난 그레이 스케일 이미지로 훈련 할 때 교차 엔트로피, NaN이에게 모든 시간을 반환 발견

편집 2 : 십자가의 계산 - 내가 사용했던 엔트로피가 좋지 않았다. Tensorflow NaN bug?

이제는 그레이 스케일 이미지를 사용할 때 아직 아무런 진전이 없습니다.

답변

0

제 편집에서 언급했듯이 교차 엔트로피가 올바르게 계산되지 않았습니다. 예제에서 코드를 사용하여주의 깊게 살펴보십시오. 정확한 예제에서만 작동 할 수 있습니다.

with tf.name_scope('cross_entropy'): 
    diff = y_ * (tf.nn.log_softmax(y_conv)) 
    with tf.name_scope('total'): 
     cross_entropy = tf.reduce_mean(-tf.reduce_sum(diff, reduction_indices=[1])) 
    tf.scalar_summary('cross entropy', cross_entropy) 

대신

y_conv=tf.nn.softmax(...) 
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y_conv), reduction_indices=[1])) 
:

Tensorflow NaN bug?에서 두 번째 awnser는 결국 내 문제를 해결