Python 无法批处理组件0中具有不同形状的张量。第一个元素有形状[224224,3],第二个元素有形状[28432622,3]

Python 无法批处理组件0中具有不同形状的张量。第一个元素有形状[224224,3],第二个元素有形状[28432622,3],python,tensorflow,tensorflow2.x,Python,Tensorflow,Tensorflow2.x,我想用我自己的数据集修改SIMCLR的代码,该数据集包含一个目录“train”,其中有两个子目录:“dog”和“cat” 这里,输入是一个文本文件,图像的名称用“,”和相应的标签分隔 我试着这样做: textdata = tf.data.Dataset.from_tensor_slices(self.file_path) textdata = textdata.shuffle(5000, reshuffle_each_iteration=True)

我想用我自己的数据集修改SIMCLR的代码,该数据集包含一个目录“train”,其中有两个子目录:“dog”和“cat”

这里,输入是一个文本文件,图像的名称用“,”和相应的标签分隔

我试着这样做:

        textdata = tf.data.Dataset.from_tensor_slices(self.file_path)
        textdata = textdata.shuffle(5000, reshuffle_each_iteration=True)

        epoch_counter = tf.data.Dataset.range(current_epoch, num_epochs)
        if self.config.task == 'pretrain':
            data = textdata.map(lambda fnames: self.read(fnames))
            data = data.map(lambda image: self.augment(image))
            data = epoch_counter.flat_map(lambda i: tf.data.Dataset.zip((data, tf.data.Dataset.from_tensors(i).repeat())))
        else:
            #textdata = textdata.map(lambda fnames: tf.strings.split(fnames, os.path.sep))
            #data_image = textdata.map(lambda fnames: self.read(fnames[0]))

            if self.config.task == 'classification' or self.config.task == 'regression':
                data_image = tf.data.Dataset.from_tensor_slices(self.file_path)
                data_image = data_image.map(lambda fnames: self.read(fnames))
         
                data_label = textdata.map(lambda fnames: self.process_path(fnames))
我发现这个错误:

tensorflow.python.framework.errors_impl.InvalidArgumentError: Cannot batch tensors with different shapes in component 0. First element had shape [224,224,3] and element 2 had shape [2843,2622,3].
tensorflow.python.framework.errors_impl.InvalidArgumentError: Cannot batch tensors with different shapes in component 0. First element had shape [224,224,3] and element 2 had shape [2843,2622,3].