ConcatDataset¶
- class torcheeg.datasets.ConcatDataset(dataset1: BaseDataset, dataset2: BaseDataset)[source][source]¶
A dataset class that vertically concatenates two datasets. This class is particularly useful for combining multiple datasets to create a large-scale dataset for pre-training. The class combines datasets by appending their information DataFrames and provides unified access to samples from both datasets.
An example usage for combining sleep EEG datasets:
isruc_dataset = ISRUCDataset(root_path='./ISRUC-SLEEP', sfreq=100, channels=['F3-M2', 'C3-M2', 'O1-M2', 'F4-M1', 'C4-M1', 'O2-M1'], label_transform=transforms.Compose([ transforms.Select('label'), transforms.Mapping({'Sleep stage W': 0, 'Sleep stage N1': 1, 'Sleep stage N2': 2, 'Sleep stage N3': 3, 'Sleep stage R': 4, 'Lights off@@EEG F4-A1': 0}) ]), online_transform=transforms.Compose([ transforms.MeanStdNormalize(), OrderElectrode(source_electrodes=['F3-M2', 'C3-M2', 'O1-M2', 'F4-M1', 'C4-M1', 'O2-M1'], target_electrodes=['F3-M2', 'F4-M1', 'C3-M2', 'C4-M1', 'O1-M2', 'O2-M1']) ]), ) hmc_dataset = HMCDataset(root_path='./HMC/recordings', sfreq=100, channels=['EEG F4-M1', 'EEG C4-M1', 'EEG O2-M1', 'EEG C3-M2'], label_transform=transforms.Compose([ transforms.Select('label'), transforms.Mapping({'Sleep stage W': 0, 'Sleep stage N1': 1, 'Sleep stage N2': 2, 'Sleep stage N3': 3, 'Sleep stage R': 4, 'Lights off@@EEG F4-A1': 0}) ]), online_transform=transforms.Compose([ transforms.MeanStdNormalize(), OrderElectrode(source_electrodes=['EEG F4-M1', 'EEG C4-M1', 'EEG O2-M1', 'EEG C3-M2'], target_electrodes=['F3', 'EEG F4-M1', 'EEG C3-M2', 'EEG C4-M1', 'O1', 'EEG O2-M1']) ]), ) p2018_dataset = P2018Dataset(root_path='./P2018/training/', sfreq=100, channels=['F3-M2', 'F4-M1', 'C3-M2', 'C4-M1', 'O1-M2', 'O2-M1'], label_transform=transforms.Compose([ transforms.Select('label'), transforms.Mapping({'Sleep stage W': 0, 'Sleep stage N1': 1, 'Sleep stage N2': 2, 'Sleep stage N3': 3, 'Sleep stage R': 4, 'Lights off@@EEG F4-A1': 0}) ]), online_transform=transforms.Compose([ transforms.MeanStdNormalize(), OrderElectrode(source_electrodes=['F3-M2', 'F4-M1', 'C3-M2', 'C4-M1', 'O1-M2', 'O2-M1'], target_electrodes=['F3-M2', 'F4-M1', 'C3-M2', 'C4-M1', 'O1-M2', 'O2-M1']) ]), ) sleep_dataset = ConcatDataset( isruc_dataset, ConcatDataset(hmc_dataset, p2018_dataset))
- Parameters:
dataset1 (BaseDataset) – The first dataset to be concatenated.
dataset2 (BaseDataset) – The second dataset to be concatenated.