Shortcuts

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.

Docs

Access comprehensive developer documentation for PyTorch

View Docs

Tutorials

Get in-depth tutorials for beginners and advanced developers

View Tutorials

Resources

Find development resources and get your questions answered

View Resources