utils.dataset_dsec.DSECDataModule#

class DSECDataModule(root: str = './data', batch_size: int = 4, num_workers: int = 4, time_step_us: int = 1000, iter: bool = False, encode: bool = False, resize: int | List[int] | None = None)[source]#

Bases: LightningDataModule

Module for working with DSEC dataset

Parameters:
  • root (str) – Root directory where the DSEC dataset is stored.

  • batch_size (int) – Number of samples per batch to load.

  • num_workers (int) – Number of subprocesses to use for data loading.

  • time_step_us (int) – Duration of each time step in microseconds.

  • iter (bool) – If True, use iterable dataset for distributed/multi-worker loading.

  • encode (bool) – If True, apply current-based encoding to images.

  • resize (Optional[Union[int, List[int]]]) – Target size for resizing input data (height, width) or None for no resizing.

Methods

get_labels

predict_dataloader

An iterable or collection of iterables specifying prediction samples.

setup

Called at the beginning of fit (train + validate), validate, test, or predict.

test_dataloader

An iterable or collection of iterables specifying test samples.

train_dataloader

An iterable or collection of iterables specifying training samples.

val_dataloader

An iterable or collection of iterables specifying validation samples.

Attributes

get_labels() List[str][source]#
predict_dataloader()[source]#

An iterable or collection of iterables specifying prediction samples.

For more information about multiple dataloaders, see this section.

It’s recommended that all data downloads and preparation happen in prepare_data().

Note:

Lightning tries to add the correct sampler for distributed and arbitrary hardware There is no need to set it yourself.

Return:

A torch.utils.data.DataLoader or a sequence of them specifying prediction samples.

setup(stage: str) None[source]#

Called at the beginning of fit (train + validate), validate, test, or predict. This is a good hook when you need to build models dynamically or adjust something about them. This hook is called on every process when using DDP.

Args:

stage: either 'fit', 'validate', 'test', or 'predict'

Example:

class LitModel(...):
    def __init__(self):
        self.l1 = None

    def prepare_data(self):
        download_data()
        tokenize()

        # don't do this
        self.something = else

    def setup(self, stage):
        data = load_data(...)
        self.l1 = nn.Linear(28, data.num_classes)
test_dataloader()[source]#

An iterable or collection of iterables specifying test samples.

For more information about multiple dataloaders, see this section.

For data processing use the following pattern:

  • download in prepare_data()

  • process and split in setup()

However, the above are only necessary for distributed processing.

Warning

do not assign state in prepare_data

Note:

Lightning tries to add the correct sampler for distributed and arbitrary hardware. There is no need to set it yourself.

Note:

If you don’t need a test dataset and a test_step(), you don’t need to implement this method.

train_dataloader()[source]#

An iterable or collection of iterables specifying training samples.

For more information about multiple dataloaders, see this section.

The dataloader you return will not be reloaded unless you set :paramref:`~lightning.pytorch.trainer.trainer.Trainer.reload_dataloaders_every_n_epochs` to a positive integer.

For data processing use the following pattern:

  • download in prepare_data()

  • process and split in setup()

However, the above are only necessary for distributed processing.

Warning

do not assign state in prepare_data

Note:

Lightning tries to add the correct sampler for distributed and arbitrary hardware. There is no need to set it yourself.

val_dataloader()[source]#

An iterable or collection of iterables specifying validation samples.

For more information about multiple dataloaders, see this section.

The dataloader you return will not be reloaded unless you set :paramref:`~lightning.pytorch.trainer.trainer.Trainer.reload_dataloaders_every_n_epochs` to a positive integer.

It’s recommended that all data downloads and preparation happen in prepare_data().

  • fit()

  • validate()

  • prepare_data()

  • setup()

Note:

Lightning tries to add the correct sampler for distributed and arbitrary hardware There is no need to set it yourself.

Note:

If you don’t need a validation dataset and a validation_step(), you don’t need to implement this method.