Tensorflow - 卷积网络:灰度与 Black/White 训练
Tensorflow - Convolutionary Net: Grayscale vs Black/White training
我把mnist的例子拿给了cnn。 https://www.tensorflow.org/versions/r0.10/tutorials/mnist/pros/index.html
我稍微改变了它来处理我自己的 28x28 图像。我有 2 类,图像要么是眼睛,要么是墙。
我注意到 rgb 和灰度图像没有导致任何训练改进准确度恒定为 0.5。
虽然转换为黑白图像(使用 image.convert('1'))的训练速度非常快。在批量大小为 20 的 200 次迭代后,准确度约为 0.9。
灰度图像没有带来任何改善的原因可能是什么?
可以做些什么来提高他们的表现?
编辑 1:我刚刚使用 TensorBoard 可视化正在发生的事情,我发现在使用灰度图像进行训练时,交叉熵一直 returns NaN..
编辑 2:我使用的交叉熵的计算很糟糕。
现在使用灰度图还是没有任何进展。
正如我在编辑中提到的,事实证明交叉熵计算不正确。请小心使用示例中的代码,它们可能只适用于确切的示例案例。
的第二个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]))
我把mnist的例子拿给了cnn。 https://www.tensorflow.org/versions/r0.10/tutorials/mnist/pros/index.html 我稍微改变了它来处理我自己的 28x28 图像。我有 2 类,图像要么是眼睛,要么是墙。
我注意到 rgb 和灰度图像没有导致任何训练改进准确度恒定为 0.5。 虽然转换为黑白图像(使用 image.convert('1'))的训练速度非常快。在批量大小为 20 的 200 次迭代后,准确度约为 0.9。
灰度图像没有带来任何改善的原因可能是什么?
可以做些什么来提高他们的表现?
编辑 1:我刚刚使用 TensorBoard 可视化正在发生的事情,我发现在使用灰度图像进行训练时,交叉熵一直 returns NaN..
编辑 2:我使用的交叉熵的计算很糟糕。
现在使用灰度图还是没有任何进展。
正如我在编辑中提到的,事实证明交叉熵计算不正确。请小心使用示例中的代码,它们可能只适用于确切的示例案例。
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]))