def stl_train(dataset_root, patch_size, patch_overlap):
        train_transform = amdim_transforms.TransformsSTL10Patches(
            patch_size=patch_size, overlap=patch_overlap)
        dataset = STL10(root=dataset_root,
                        split='unlabeled',
                        transform=train_transform,
                        download=True)
        tng_split, val_split = random_split(dataset, [95000, 5000])

        return tng_split, val_split
    def stl(dataset_root,
            patch_size,
            patch_overlap,
            split: Optional[str] = None):
        if not _TORCHVISION_AVAILABLE:  # pragma: no cover
            raise ModuleNotFoundError(
                'You want to use STL10 dataset loaded from `torchvision` which is not installed yet.'
            )
        train_transform = amdim_transforms.TransformsSTL10Patches(
            patch_size=patch_size, overlap=patch_overlap)
        dataset = STL10(
            root=dataset_root,
            split='unlabeled',
            transform=train_transform,
            download=True,
        )
        tng_split, val_split = random_split(dataset, [95000, 5000])

        return tng_split, val_split