Для решения этой проблемы есть три основных шага:
tf.train.string_input_producer()
списком строк, содержащих исходную строку с разделителем пробела, содержащую имя файла и метку. tf.read_file(filename)
, а не tf.WholeFileReader()
, чтобы читать ваши файлы изображений. tf.read_file()
является оператором без учета состояния, который использует одно имя файла и создает одну строку, содержащую содержимое файла. Преимущество состоит в том, что это чистая функция, поэтому легко связывать данные со входом и выходом. Например, ваша функция read_my_file_format
станет следующей: def read_my_file_format(filename_and_label_tensor):
"""Consumes a single filename and label as a ' '-delimited string.
Args:
filename_and_label_tensor: A scalar string tensor.
Returns:
Two tensors: the decoded image, and the string label.
"""
filename, label = tf.decode_csv(filename_and_label_tensor, [[""], [""]], " ")
file_contents = tf.read_file(filename)
example = tf.image.decode_png(file_contents)
return example, label
read_my_file_format
, передав один из выделенных элементов из input_queue
: image, label = read_my_file_format(input_queue.dequeue())
Затем вы можете использовать тензоры image
и label
в остальной части вашей модели.