def __init__(
        self,
        root: Optional[Union[str, Path]] = None,
        *,
        data_name: str = "clear10",
        download: bool = True,
        verbose: bool = True,
        split: str = "all",
        seed: Optional[int] = None,
        feature_type: str = "moco_b0",
        target_transform=None,
    ):
        """
        Creates an instance of the CLEAR dataset.
        This image dataset will contain samples from all buckets of CLEAR,
        so it is not intended for CL purposes. It simply download and
        unzip the CLEAR dataset.

        Tensors and targets for benchmark creation will be
        loaded in self.tensors_and_targets

        :param root: The directory where the dataset can be found or downloaded.
            Defaults to None, which means that the default location for
            str(data_name) will be used.
        :param data_name: Data module name with the google drive url and md5
        :param download: If True, the dataset will be downloaded if needed.
        :param split: Choose from ['all', 'train', 'test'].
            If 'all', then return all data from all buckets.
            If 'train'/'test', then only return train/test data.
        :param seed: The random seed used for splitting the train:test into 7:3
            If split=='all', then seed must be None (since no split is done)
            otherwise, choose from [0, 1, 2, 3, 4]
        :param feature_type: The type of features.
            For CLEAR10_NeurIPS2021, choose from [
                'moco_b0', # Moco V2 ResNet50 pretrained on bucket 0
                'moco_imagenet', # Moco V2 ResNet50 pretrained on Imagenet
                'byol_imagenet', # BYOL ResNet50 pretrained on Imagenet
                'imagenet', # ResNet50 pretrained on Imagenet
            ]
            For other datasets: 'moco_b0' only
        :param target_transform: The transformations to apply to the Y values.
        """
        self.split = split
        assert self.split in ["all", "train", "test"], "Invalid split option"

        if self.split == "all":
            assert seed is None, "Specify a seed if not splitting train:test"
        else:
            assert seed in SEED_LIST
        self.seed = seed

        self.feature_type = feature_type
        assert feature_type in CLEAR_FEATURE_TYPES[data_name]
        self.target_transform = target_transform

        self.tensors_and_targets: List[Tuple[List[torch.Tensor], List[int]]] = []

        super(_CLEARFeature, self).__init__(
            root, data_name=data_name, download=download, verbose=True
        )

        Creates an instance of the CLEAR dataset.
        This image dataset will contain samples from all buckets of CLEAR,
        so it is not intended for CL purposes. It simply download and
        unzip the CLEAR dataset.

        Tensors and targets for benchmark creation will be
        loaded in self.tensors_and_targets

        :param root: The directory where the dataset can be found or downloaded.
            Defaults to None, which means that the default location for
            str(data_name) will be used.
        :param data_name: Data module name with the google drive url and md5
        :param download: If True, the dataset will be downloaded if needed.
        :param split: Choose from ['all', 'train', 'test'].
            If 'all', then return all data from all buckets.
            If 'train'/'test', then only return train/test data.
        :param seed: The random seed used for splitting the train:test into 7:3
            If split=='all', then seed must be None (since no split is done)
            otherwise, choose from [0, 1, 2, 3, 4]
        :param feature_type: The type of features.
            For CLEAR10_NeurIPS2021, choose from [
                'moco_b0', # Moco V2 ResNet50 pretrained on bucket 0
                'moco_imagenet', # Moco V2 ResNet50 pretrained on Imagenet
                'byol_imagenet', # BYOL ResNet50 pretrained on Imagenet
                'imagenet', # ResNet50 pretrained on Imagenet
            ]
            For other datasets: 'moco_b0' only
        :param target_transform: The transformations to apply to the Y values.
        
avalanche/benchmarks/datasets/clear/clear.py