A GridMixup augmentation, inspired by GridMask and CutMix
pip install git+https://github.com/IlyaDobrynin/GridMixup.git
This simple augmentation is inspired by the GridMask and CutMix augmentations. The combination of this two augmentations forms proposed method.
To run simple examples notebooks, you should install requirements:
pip install -r requirements.txt
Simple examples are here: demo and pipeline demo
TlDr:
from gridmix import GridMixupLoss
gridmix_cls = GridMixupLoss(
alpha=(0.4, 0.7),
hole_aspect_ratio=1.,
crop_area_ratio=(0.5, 1),
crop_aspect_ratio=(0.5, 2),
n_holes_x=(2, 6)
)
images, targets = batch['images'], batch['targets']
images_mixed, targets_mixed = gridmix_cls.get_sample(images=images, targets=targets)
preds = model(images_mixed)
loss = criterion(preds, targets_mixed)
GridMixup loss defined as:
lam * CrossEntropyLoss(preds, trues1) + (1 - lam) * CrossEntropyLoss(preds, trues2)
where:
lam- the area of the main image(1 - lam)- area of the secondary image
GridMixupLoss takes follow arguments:
alpha- parameter define area of the main image in mixed image. Could befloatorTuple[float, float].- if
float: lambda parameter gets from the beta-dictribution np.random.beta(alpha, alpha); - if
Tuple[float, float]: lambda parameter gets from the uniform distribution np.random.uniform(alpha[0], alpha[1]).
- if
n_holes_x- number of holes in crop by X axis.hole_aspect_ratio- aspect ratio of holes.crop_area_ratio- parameter define area of the secondary image on a mixed image.crop_aspect_ratio- aspect ratio of crop.

