batchgeneratorsv2
raw JSON → 0.3.2 verified Sat May 09 auth: no python
Batchgenerators is a deep learning data augmentation and batching library originally for medical image segmentation. Version 2 overhauls the API for composable transformations, deterministic ordering, and reduced overhead. Current version 0.3.2 (pre-1.0, breaking changes likely). Released irregularly.
pip install batchgeneratorsv2 Common errors
error AttributeError: module 'batchgeneratorsv2' has no attribute 'BatchGenerator' ↓
cause Trying to import BatchGenerator from the top module instead of submodule.
fix
Use: from batchgeneratorsv2.generators import BatchGenerator
error ImportError: cannot import name 'Compose' from 'batchgeneratorsv2' ↓
cause Compose is not in the top-level package; it's in transforms.
fix
Use: from batchgeneratorsv2.transforms import Compose
error RuntimeError: DataLoader worker (pid(s) ...) exited unexpectedly ↓
cause Using num_processes > 1 with multiprocessing has known issues.
fix
Set num_processes=1 or use single-process mode.
Warnings
breaking batchgeneratorsv2 is a complete rewrite from batchgenerators (v1). Import paths, API, and behavior differ: v2 uses generators module, Compose is in transforms, and data is passed as dict with 'data' key. ↓
fix Do not mix v1 and v2 imports. Rewrite code to use v2 API: from batchgeneratorsv2.generators import BatchGenerator; from batchgeneratorsv2.transforms import Compose.
breaking v0.3.0 removed the old 'batchgeneratorsv2.transforms.abstract' submodule. All transforms now inherit from base classes in transforms.base. ↓
fix Use transforms.base.AbstractTransform instead of transforms.abstract.AbstractTransform.
deprecated Setting num_processes > 1 is experimental. May cause deadlocks or data corruption. ↓
fix Use num_processes=1 for stability, or test carefully with multiprocessing.
gotcha SpatialTransform's 'patch_size' must be smaller than input dimensions; otherwise, it silently fails or returns empty arrays. ↓
fix Ensure patch_size is less than or equal to the spatial dimensions of your input data.
Imports
- BatchGenerator wrong
from batchgeneratorsv2 import BatchGeneratorcorrectfrom batchgeneratorsv2.generators import BatchGenerator - Compose wrong
from batchgeneratorsv2 import Composecorrectfrom batchgeneratorsv2.transforms import Compose
Quickstart
import numpy as np
from batchgeneratorsv2.generators import BatchGenerator
from batchgeneratorsv2.transforms import Compose, SpatialTransform, ColorTransform
# Dummy data
data = np.random.rand(100, 3, 128, 128) # N, C, H, W
# Define transforms
transforms = Compose([
SpatialTransform(patch_size=(64, 64), do_rotation=True),
ColorTransform(brightness_range=(0.9, 1.1), contrast_range=(0.9, 1.1))
])
# Create batch generator
batch_gen = BatchGenerator(
data=data,
batch_size=4,
transforms=transforms,
num_processes=1
)
# Iterate
for batch in batch_gen:
x = batch['data']
# x shape: (4, 3, 64, 64)
break
print('Quickstart works: shape', x.shape)