def METHOD_NAME(self):
    if self.subset is None:
        datasets = [
            self.librispeech_cls(self.librispeech_path, url="train-clean-360"),
            self.librispeech_cls(self.librispeech_path, url="train-clean-100"),
            self.librispeech_cls(self.librispeech_path, url="train-other-500"),
        ]
    elif self.subset == "train-clean-100":
        datasets = [self.librispeech_cls(self.librispeech_path, url="train-clean-100", blist=self.fullbiasinglist)]
    if not self.train_dataset_lengths:
        self.train_dataset_lengths = [get_sample_lengths(dataset) for dataset in datasets]
    dataset = torch.utils.data.ConcatDataset(
        [
            CustomBucketDataset(
                dataset,
                lengths,
                self.max_tokens,
                self.train_num_buckets,
                batch_size=self.batch_size,
            )
            for dataset, lengths in zip(datasets, self.train_dataset_lengths)
        ]
    )
    dataset = TransformDataset(dataset, self.train_transform)
    dataloader = torch.utils.data.DataLoader(
        dataset,
        num_workers=self.num_workers,
        batch_size=None,
        shuffle=self.train_shuffle,
    )
    return dataloader