batchgenerators

raw JSON →
0.25.1 verified Mon Apr 27 auth: no python

Data augmentation toolkit for medical imaging and deep learning. Current version 0.25.1. Released on PyPI with irregular cadence; maintained by MIC-DKFZ.

pip install batchgenerators
error AttributeError: module 'batchgenerators' has no attribute 'dataloading'
cause Installed version is too old (pre-0.20) where dataloading was not a top-level module.
fix
Upgrade batchgenerators: pip install --upgrade batchgenerators
error ImportError: cannot import name 'DefaultTransformations' from 'batchgenerators.transforms'
cause DefaultTransformations was removed in 0.25. Use explicit transforms instead.
fix
Use from batchgenerators.transforms import Compose, SpatialTransform, ... and compose your own pipeline.
error RuntimeError: DataLoader expects keyword argument 'data' but got 'dataset'
cause Code written for older batchgenerators (<0.25) uses 'dataset', newer versions require 'data'.
fix
Change DataLoader(dataset=...) to DataLoader(data=...)
breaking In version 0.25, DataLoader no longer accepts the 'dataset' argument; use 'data' instead.
fix Replace DataLoader(dataset=...) with DataLoader(data=...)
deprecated batchgenerators.transforms.abstract_transforms is deprecated; use batchgenerators.transforms directly.
fix Import from batchgenerators.transforms instead.
gotcha Memory usage can spike if num_threads is set too high in DataLoader, especially with large images.
fix Keep num_threads <= number of CPU cores; use multiprocessing context if needed.

Basic usage: create a DataLoader from a list of data, apply augmentations via Compose.

from batchgenerators.dataloading import DataLoader
from batchgenerators.transforms import Compose, SpatialTransform

# Simple data loader for a list of images
train_loader = DataLoader(my_data_list, batch_size=4, num_threads=2)
transforms = Compose([SpatialTransform(patch_size=(128,128,128))])
for batch in train_loader:
    data = batch['data']
    seg = batch['seg']
    data, seg = transforms(data, seg)
    break