У меня есть функция get_image(...)
, которая выполняет предварительную обработку на моих входных изображениях. Я собираю все изображения, которые принадлежат к одной и той же партии в списке, как это:Tensorflow: создать пакет из списка тензоров изображений
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 массив перед подачей его в сеть?
не понятно, что вы хотите сделать здесь. Почему вы не передаете список python, содержащий изображения, как ваш input_batch? tensorflow преобразует его для вас – fabrizioM
Я хотел использовать функции предварительной обработки, предоставляемые tf. В противном случае мне пришлось бы переписать все в python ... – mcExchange