experanto.dataloaders.get_multisession_concat_dataloader

get_multisession_concat_dataloader(paths, configs=None, seed=0, dataloader_config=None, **kwargs)[source]

Create a concatenated multi-session dataloader.

Unlike get_multisession_dataloader(), this function concatenates all sessions into a single dataset and uses batch sampling to ensure each batch contains samples from only one session. This is more memory-efficient and provides better shuffling across sessions.

Parameters:
  • paths (list of str) – Paths to experiment directories.

  • configs (dict or list of dict, optional) – Configuration for each dataset. If a single config is provided, it will be applied to all datasets. Each config should have dataset and dataloader keys.

  • seed (int, default=0) – Random seed for reproducibility. Each dataset gets a deterministic seed derived from this value and its path hash.

  • dataloader_config (dict, optional) – Configuration for the dataloader (batch_size, num_workers, etc.). If None, uses the dataloader config from the first config.

  • **kwargs – Additional keyword arguments. Supports config as an alias for configs.

Returns:

A dataloader that yields (session_key, batch) tuples. Returns None if no valid datasets could be created.

Return type:

FastSessionDataLoader or None

See also

get_multisession_dataloader

Alternative using separate dataloaders.

FastSessionDataLoader

The underlying dataloader implementation.

SessionConcatDataset

Dataset that concatenates multiple sessions.

Examples

>>> from experanto.dataloaders import get_multisession_concat_dataloader
>>> from experanto.configs import DEFAULT_CONFIG
>>> paths = ['/path/to/exp1', '/path/to/exp2', '/path/to/exp3']
>>> loader = get_multisession_concat_dataloader(paths, configs=DEFAULT_CONFIG)
>>> for session_key, batch in loader:
...     print(f"Session: {session_key}")