Пакетное обучение со стереоизображениями в тензорном потоке

Как пакетное обучение с tf.readfile?

for i in range(len(files_mask)):
    t_image_left = tf.read_file(files_left[i], name='read_fileimage_left')
    t_image_right = tf.read_file(files_right[i], name='read_fileimage_right')
    t_image_mask = tf.read_file(files_mask[i], name='read_fileimage_mask')
    t_left = tf.image.decode_png(t_image_left, name='decode_png_t_left', dtype=tf.uint8)
    t_right = tf.image.decode_png(t_image_right, name='decode_png_t_right', dtype=tf.uint8)
    t_mask = tf.image.decode_png(t_image_mask, name='decode_png_t_mask', dtype=tf.uint8)

Слева и справа изображения и маски должны соответствовать друг другу. Левая верхняя партия должна быть левой верхней партией на всех изображениях.

Это возможно с: https://www.tensorflow.org/versions/r1.2/api_docs/python/tf/train/batch?

1 ответ

Решение

Ты можешь использовать tf.train.batch, но вы также должны использовать очередь для имен файлов, таких как tf.train.slice_input_producer

filename_queue = tf.train.slice_input_producer([files_left, files_right, files_mask])
t_image_left = tf.read_file(filename_queue[0], name='read_fileimage_left')
t_image_right = tf.read_file(filename_queue[1], name='read_fileimage_right')
t_image_mask = tf.read_file(filename_queue[2], name='read_fileimage_mask')
t_left = tf.image.decode_png(t_image_left, name='decode_png_t_left', dtype=tf.uint8)
t_right = tf.image.decode_png(t_image_right, name='decode_png_t_right', dtype=tf.uint8)
t_mask = tf.image.decode_png(t_image_mask, name='decode_png_t_mask', dtype=tf.uint8
batch_left, batch_right, batch_mask = tf.train.batch([t_left, t_right, t_mask], batch_size=32, num_threads=1,
     capacity=500, enqueue_many=False,)
Другие вопросы по тегам