Esempio n. 1
0
 def __init__(self, **kwargs):
     """Construct the Imagenet class."""
     Dataset.__init__(self, **kwargs)
     split = 'train' if self.train else 'val'
     local_data_path = FileOps.join_path(self.args.data_path, split)
     ImageFolder.__init__(self,
                          root=local_data_path,
                          transform=Compose(self.transforms.__transform__))
Esempio n. 2
0
    def __init__(self, root, transform=None, target_transform=None, download=False, **kwargs):
        self.root = root
        if download:
            self.download()

        if not self._check_integrity():
            raise RuntimeError('Dataset not found or corrupted.' +
                               ' You can use download=True to download it')
        ImageFolder.__init__(self, os.path.join(root, self.base_folder), transform = transform, target_transform = target_transform, **kwargs)
    def __init__(self,
                 root,
                 train=False,
                 transform=None,
                 target_transform=None,
                 download=False,
                 **kwargs):
        self.root = root
        self.transform = transform
        self.target_transform = target_transform
        self.loader = default_loader

        if download:
            download_url(self.url, self.root, self.filename, self.zip_md5)

            if not self._check_integrity():
                # extract file
                cwd = os.getcwd()
                os.chdir(root)
                with zipfile.ZipFile(self.filename, "r") as zip:
                    zip.extractall()
                os.chdir(cwd)

        if not self._check_integrity():
            raise RuntimeError('Dataset not found or corrupted.' +
                               ' You can use download=True to download it')

        ImageFolder.__init__(self,
                             os.path.join(root, self.base_folder),
                             transform=transform,
                             target_transform=target_transform,
                             **kwargs)

        self.super_classes = self.classes
        samples = []
        classes = set()
        f = open(
            os.path.join(root, self.base_folder,
                         'Ebay_{}.txt'.format('train' if train else 'test')))
        f.readline()
        for (image_id, class_id, super_class_id, path) in map(str.split, f):
            samples.append((os.path.join(root, self.base_folder,
                                         path), int(class_id) - 1))
            classes.add(
                "%s.%s" %
                (class_id, self.super_classes[int(super_class_id) - 1]))

        self.samples = samples
        self.classes = list(classes)
        self.classes.sort(key=lambda x: int(x.split(".")[0]))
        self.class_to_idx = {cls: i for i, cls in enumerate(self.classes)}
        self.imgs = self.samples
Esempio n. 4
0
    def __init__(self, root, train=False, transform=None, target_transform=None, download=False, **kwargs):
        self.root = root + "/Cars196"
        self.transform = transform
        self.target_transform = target_transform
        self.loader = default_loader

        if download:
            download_url(self.img_url, self.root, self.img_filename, self.img_md5)
            download_url(self.anno_url, self.root, self.anno_filename, self.anno_md5)

            if not self._check_integrity():
                cwd = os.getcwd()
                tar = tarfile.open(os.path.join(self.root, self.img_filename), "r:gz")
                os.chdir(self.root)
                tar.extractall()
                tar.close()
                os.chdir(cwd)

        if not self._check_integrity() or \
           not check_integrity(os.path.join(self.root, self.anno_filename), self.anno_md5):
            raise RuntimeError('Dataset not found or corrupted.' +
                               ' You can use download=True to download it')

        ImageFolder.__init__(self, os.path.join(self.root),
                             transform=transform, target_transform=target_transform, **kwargs)
        self.root = root + "/Cars196"

        labels = io.loadmat(os.path.join(self.root, self.anno_filename))['annotations'][0]
        class_names = io.loadmat(os.path.join(self.root, self.anno_filename))['class_names'][0]

        if train:
            self.classes = [str(c[0]) for c in class_names[:98]]
            self.class_to_idx = {cls: i for i, cls in enumerate(self.classes)}
        else:
            self.classes = [str(c[0]) for c in class_names[98:]]
            self.class_to_idx = {cls: i+98 for i, cls in enumerate(self.classes)}

        class_idx = list(self.class_to_idx.values())
        samples = []
        for l in labels:
            cls = int(l[5][0, 0]) - 1
            p = l[0][0]
            if cls in class_idx:
                samples.append((os.path.join(self.root, p), int(cls)))

        self.samples = samples
        self.imgs = self.samples
Esempio n. 5
0
    def __init__(
        self,
        root: str = default_dataset_path("imagenette"),
        train: bool = True,
        rand_trans: bool = False,
        dataset_size: ImagenetteSize = ImagenetteSize.s160,
        image_size: Union[int, None] = None,
        download: bool = True,
    ):
        if torchvision_import_error is not None:
            raise torchvision_import_error

        ImagenetteDownloader.__init__(self, root, dataset_size, download)

        if image_size is None:
            image_size = 160 if dataset_size == ImagenetteSize.s160 else 224

        if rand_trans:
            trans = [
                transforms.RandomResizedCrop(image_size),
                transforms.RandomHorizontalFlip(),
            ]
        else:
            resize_scale = 256.0 / 224.0  # standard used
            trans = [
                transforms.Resize(round(resize_scale * image_size)),
                transforms.CenterCrop(image_size),
            ]

        trans.extend([
            transforms.ToTensor(),
            transforms.Normalize(mean=IMAGENET_RGB_MEANS,
                                 std=IMAGENET_RGB_STDS),
        ])

        ImageFolder.__init__(self, self.split_root(train),
                             transforms.Compose(trans))

        # make sure we don't preserve the folder structure class order
        random.shuffle(self.samples)