TrackChain / ml /data /loaders.py
PRiyanshu0-1's picture
Add ml/ codebase and configs
2adb41a verified
Raw History Blame Contribute Delete
926 Bytes
# DataLoader builders with train/val splits and augmentation.
from typing import Tuple
from torch.utils.data import DataLoader, random_split, Dataset
def build_dataloaders(
dataset: Dataset,
batch_size: int = 32,
val_split: float = 0.2,
num_workers: int = 0,
seed: int = 42,
) -> Tuple[DataLoader, DataLoader]:
"""Create reproducible training and validation data loaders."""
val_size = int(len(dataset) * val_split)
train_size = len(dataset) - val_size
train_set, val_set = random_split(
dataset,
[train_size, val_size],
generator=None,
)
train_loader = DataLoader(
train_set,
batch_size=batch_size,
shuffle=True,
num_workers=num_workers,
)
val_loader = DataLoader(
val_set,
batch_size=batch_size,
shuffle=False,
num_workers=num_workers,
)
return train_loader, val_loader