【问题标题】:How to use list of images as input of CNN in TensorFlow?如何在 TensorFlow 中使用图像列表作为 CNN 的输入?
【发布时间】:2017-05-11 07:20:34
【问题描述】:

我是 TensorFlow 的新手,在使用列表作为 CNN 的输入时遇到问题。

假设我有 4 个列表:

  • TrainingImage:这是一个包含我要训练的所有图像的列表,每个图像 I 都是 BGR 通道,因此我使用 TrainingImage.append(I) 将图像 I 放入此列表。
  • TrainingLabel:这是在TrainingImage 中标记图像的列表,每一行都是一个单热向量。例如,如果我有 3 个对象(1、2、3),每个对象有 2 个图像(这意味着 TrainingImage 有 3 x 2 = 6 个图像),那么我有一个标签列表,例如:1、0、0; 1, 0, 0; 0, 1, 0; 0, 1, 0; 0, 0, 1; 0, 0, 1
  • TestingImage:包含所有用于测试的图像的列表,类似于TrainingImage,但图像较少。
  • TestingLabel:所有标签为TestingImage 的列表

我不知道如何在 TensorFlow 中将其用作 CNN 的输入。我正在使用以下代码,每个图像的大小为 68 x 68 x 3,我有 17 个对象,每个对象有 64 个用于训练的图像,16 个用于测试的图像。

使用 tf.Session() 作为 sess:

data_initializer = tf.placeholder(tf.float32,
                                  (1088, 68, 68, 3))
label_initializer = tf.placeholder(tf.float32,
                                   (1088, 17))
input_data = tf.Variable(data_initializer, trainable=False, collections=[])
input_labels = tf.Variable(label_initializer, trainable=False, collections=[])

sess.run(input_data.initializer, feed_dict={data_initializer: TrainingImage})
sess.run(input_labels.initializer, feed_dict={label_initializer: TrainingLabel})

所以现在input_datainput_labels 是我对CNN 的新输入,但我不确定这是正确的方法吗?我按照这条 TensorFlow 指令https://www.tensorflow.org/programmers_guide/reading_data#preloaded_data 使用上述代码,将 4 个列表视为变量。

【问题讨论】:

  • 您可以尝试将图像列表转换为 numpy 数组吗? a = [1, 2] ; a = np.asarray(a)

标签: python image list tensorflow


【解决方案1】:

是的,这会奏效。我可以推荐它而不是

data_initializer = tf.placeholder(tf.float32,(1088, 68, 68, 3))

你使用

data_initializer = tf.placeholder(tf.float32,(None, 68, 68, 3))

这将允许您发送不同数量的图像,而不必总是发送 1088 张图像。在某些时候,您只想处理 1 张图像。

【讨论】:

  • 谢谢,但是当我更改为 None 时,会发生此错误 ValueError: initial_value must have a shape specified: Tensor("Placeholder_4:0", shape=(?, 68, 68, 3), dtype =float32)
  • 尝试将 "input_data = tf.Variable(data_initializer, trainable=False, collections=[])" 更改为 input_data = tf.Variable(tf.zeros( [ None,68,68,3 ] , dtype=tf.float32 ), trainable=False, collections=[]) 和类似的 input_labels
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多