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:
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
datasetanddataloaderkeys.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
configas an alias forconfigs.
- 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_dataloaderAlternative using separate dataloaders.
FastSessionDataLoaderThe underlying dataloader implementation.
SessionConcatDatasetDataset 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}")