Tensorflow:从图像张量列表创建一个批

Tensorflow:从图像张量列表创建一个批,tensorflow,Tensorflow,我有一个函数get_image(…),它对输入图像执行预处理。我在如下列表中收集属于同一批的所有图像: batch = [get_image(file_path) for file_path in batch_files] 现在我想把这个列表转换成一个张量,第一个维度是批量大小维度,这样我就可以把它输入到网络的输入占位符中 _ = self.sess.run([loss],feed_dict={ input_placeholder: batch }) 你知道我怎么做吗

我有一个函数
get_image(…)
,它对输入图像执行预处理。我在如下列表中收集属于同一批的所有图像:

batch = [get_image(file_path) for file_path in batch_files]
现在我想把这个列表转换成一个张量,第一个维度是批量大小维度,这样我就可以把它输入到网络的输入占位符中

_ = self.sess.run([loss],feed_dict={ input_placeholder: batch })
你知道我怎么做吗

            batch_concat = tf.placeholder(shape=[None] + self.image_shape, dtype=tf.float32) 
            for i in xrange(0,self.batch_size):
                if i == 0:
                    tmp_batch = tf.expand_dims(batch[i], 0)
                    batch_concat = tmp_batch
                else:
                    tmp_batch = tf.expand_dims(batch[i], 0)                        
                    batch_concat = tf.concat(0, [batch_concat, tmp_batch])
当我尝试连接所有张量时,会出现以下错误:

TypeError: The value of a feed cannot be a tf.Tensor object. Acceptable feed values include Python scalars, strings, lists, or numpy ndarrays.
因此,在将张量反馈给网络之前,将其转换回numpy数组就足够了?

您可以使用它将张量列表打包成一批

image_list = [get_image(file_path) for file_path in batch_files]
image_batch = tf.pack(image_list)

您还可以使用tf.concat沿第一个维度连接列表并对其进行重塑。

tf r1.1包中的已被替换为此处的问题是使用张量作为提要dict中的值。而不是将
批处理
作为输入占位符的值,假设
批处理
是批处理张量,为什么不使用
批处理
而不是
输入占位符

因此,不是:

input_placeholder = tf.Placeholder(tf.int32)
loss = some_function(input_placeholder)
sess.run(loss, feed_dict={input_placeholder: batch})
做:


不清楚你想在这里做什么。为什么不将包含图像的python列表作为输入批传递?tensorflow将为您转换它。我想使用tf提供的预处理功能。否则我将不得不用python重写所有内容。。。
loss = some_function(batch)
sess.run(batch)