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

Как выполнить пакетное обучение с помощью 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?


person j35t3r    schedule 05.09.2017    source источник


Ответы (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,)
person Ishant Mrinal    schedule 05.09.2017
comment
как насчет того, чтобы иметь разные размеры изображений? это еще возможно? - person j35t3r; 05.09.2017
comment
filename_queue[0]: Объект 'FifoQueue' не поддерживает индексацию. - person j35t3r; 05.09.2017
comment
изображения t_image_left и t_image_right, а также t_image_mask не совпадают. Я уже пытался отключить перемешивание: tf.train.slice_input_producer([files_left, files_right, files_mask], shuffle=False) - person j35t3r; 06.09.2017
comment
left = ['/home/test/dataset/middle_burry/training/Adirondack-imperfect/im0.png'] right = ['/home/test/dataset/middle_burry/training/Adirondack-imperfect/im1.png'] mask = ['/home/test/dataset/middle_burry/training/Adirondack-imperfect/mask0.png'] Я не уверен - person j35t3r; 06.09.2017
comment
files_left, files_right, files_mask должны иметь одинаковый порядок соответствующих имен файлов. Например, files_left=[left_filename1, ....], files_right=[right_filenames1...] и files_maks = [mask_fileanmes1...], если этот порядок правильный, остальное будет файлом. - person Ishant Mrinal; 06.09.2017