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