Thanks for the quick reply. I tried that previously:
class ConcatDataset(Dataset):
    
    def __init__(self, datasets):
        super(ConcatDataset, self).__init__()
        assert len(datasets) > 0, 'datasets should not be an empty iterable'
        self.datasets = list(datasets)
        self.cumulative_sizes = self.cumsum(self.datasets)

    def __len__(self):
        return self.cumulative_sizes[-1]

    def __getitem__(self, idx):
        dataset_idx = bisect.bisect_right(self.cumulative_sizes, idx)
        if dataset_idx == 0:
            sample_idx = idx
        else:
            sample_idx = idx - self.cumulative_sizes[dataset_idx - 1]
        return self.datasets[dataset_idx][sample_idx]

fused_data = torch.utils.data.ConcatDataset(vs_trainset, th_trainset)

But I kept getting the error:
TypeError: __init__() takes 2 positional arguments but 3 were given

Can you see any obvious error that I may have overlooked?