将图像输送到TensorFlow图形时出错

时间:2016-12-02 03:14:53

标签: numpy tensorflow conv-neural-network grayscale

我正在尝试将一些图片加载到TensorFlow的{​​{1}}图表中,但是我希望图表在处理之前将它们转换为灰度图像。

RGB

但是我收到了错误

x = tf.placeholder(tf.float32, shape=[None, 32, 32, 1], name='x')

gray = tf.image.rgb_to_grayscale(x, name='grayscale')

我导出了ValueError: Cannot feed value of shape (250, 32, 32, 3) for Tensor 'x:0', which has shape '(?, 32, 32, 1)' 错误,并将其作为notebook文件上传到Github,以实现完整性和简洁性。

我意识到错误是因为md是RGB形状。

但我认为x_batch会自动进行转化。

由于tf.image.rgb_to_grayscale包含了输入,因此TensorFlow不应该TF作为会话的一部分吗?

或者我错过了解它是如何运作的?

2 个答案:

答案 0 :(得分:1)

函数tf.image.rgb_to_graycale需要一个输入张量,其最后一个维度的大小为3.例如,在您的情况下,一组形状为(250, 32, 32, 3)的图像,或者它可能是一个形状{{ 1}}。

如果您想要提供RGB图像并立即将它们处理为灰度,您可以执行以下操作:

(32, 32, 3)

答案 1 :(得分:0)

错误是因为您希望加载用于RGB2灰度转换的RGB图像,但使用占位符

  

x = tf.placeholder(tf.float32,shape = [None,32,32,1],name ='x')

x定义为具有一个尺寸,将1更改为3,将消除错误。