Я создаю стандартную модель классификации изображений с Tensorflow. Для этого у меня есть входные изображения, каждый из которых назначается меткой (число в {0,1}). Поэтому данные могут быть сохранены в списке в следующем формате:
/path/to/image_0 label_0
/path/to/image_1 label_1
/path/to/image_2 label_2
...
Я хочу использовать систему очередей TensorFlow для чтения моих данных и передачи ее моей модели. Игнорируя метки, можно легко достичь этого, используя string_input_producer
и wholeFileReader
. Здесь код:
def read_my_file_format(filename_queue):
reader = tf.WholeFileReader()
key, value = reader.read(filename_queue)
example = tf.image.decode_png(value)
return example
#removing label, obtaining list containing /path/to/image_x
image_list = [line[:-2] for line in image_label_list]
input_queue = tf.train.string_input_producer(image_list)
input_images = read_my_file_format(input_queue)
Однако метки теряются в этом процессе, поскольку данные изображения намеренно перетасовываются как часть входного конвейера. Каков самый простой способ нажатия меток вместе с данными изображения через очереди ввода?