【发布时间】: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_data 和input_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