0

我接受了cnn的mnist例子。 https://www.tensorflow.org/versions/r0.10/tutorials/mnist/pros/index.html 我稍微改變它來處理我自己的28x28圖像。我有兩個班,一個圖像是眼睛或牆壁。Tensorflow - Convolutionary Net:灰度與黑白訓練

我注意到rgb和灰度圖像沒有導致任何訓練改善的精度是恆定0.5。 轉換爲黑白圖像(帶有image.convert('1'))的訓練速度非常快。在批次大小爲20的情況下進行200次迭代後,精確度大約爲0.9。

灰度圖像沒有導致任何改善的原因是什麼?

可以做些什麼來提高他們的表現?

編輯1:我只是用TensorBoard想象這是怎麼回事,我發現了交叉熵返回NaN的全部時間,用灰度圖像訓練的時候..

編輯2:十字架的計算 - 我用的是壞的。 Tensorflow NaN bug?

現在在使用灰度圖像時仍然沒有進展。

回答

0

正如我在編輯中提到的,事實證明交叉熵計算不正確。請謹慎使用示例中的代碼,它們可能只能用於確切的示例情況。

Tensorflow NaN bug?第二awnser終於解決了我的問題:

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]))