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は最終的に私の問題を解決しました