Не удается загрузить файлы с набором данных Tensorflow

Я пытаюсь использовать tf.Dataset для загрузки входных изображений и маркировки изображений. Поэтому я следую руководству по набору данных Tensorflow по адресу https://www.tensorflow.org/programmers_guide/datasets < / а>. Но я получаю такую ​​ошибку:

ValueError: 'images' contains no shape.

Я напечатал несколько строк:

Это то, что у меня input_files: ['images/kitchen-1687121_1280.jpg', 'images/room-1706801_1280.jpg']

input_filename: Tensor("arg0:0", shape=(), dtype=string)

image_string: Tensor("ReadFile:0", shape=(), dtype=string)

class DatasetImporter():

    def __init__(self, inputs_path, labels_path):
        self.inputs_path = inputs_path
        self.labels_path = labels_path
        self.dataset = None

    def _get_files(self, path):
        return sorted([path+"/"+f for f in listdir(path) if isfile(join(path, f))])

    def _parse_function(self, input_filename, label_filename):
        print(input_filename) # Tensor("arg0:0", shape=(), dtype=string)
        image_string = tf.read_file(input_filename)
        print(image_string) # Tensor("ReadFile:0", shape=(), dtype=string)
        image_decoded = tf.image.decode_image(image_string)
        image_resized = tf.image.resize_images(image_decoded, [28, 28]) # *ERROR* in this line 
        # Similar for the label...
        return image_resized, label

    def loadData(self):
        input_files = self._get_files(dsi.inputs_path)
        label_files = self._get_files(dsi.labels_path)
        print(input_files) # ['images/kitchen-1687121_1280.jpg', 'images/room-1706801_1280.jpg']
        self.dataset = tf.data.Dataset.from_tensor_slices((tf.constant(input_files), tf.constant(label_files)))
        self.dataset = dataset.map(self._parse_function)

dsi = DatasetImporter("images", "labels")
dsi.loadData()

person ScientiaEtVeritas    schedule 19.01.2018    source источник


Ответы (1)


Проблема возникает из-за того, что вы используете tf.image.decode_image вместо tf.image.decode_jpeg. Первый не возвращает никакой формы из-за некоторых проблем, описанных здесь и здесь.

Я написал более подробный ответ здесь.

person Olivier Moindrot    schedule 19.01.2018