# mixup_batch#

composer.functional.mixup_batch(input, target, mixing=None, alpha=0.2, indices=None)[source]#

Create new samples using convex combinations of pairs of samples.

This is done by taking a convex combination of input with a randomly permuted copy of input. The permutation takes place along the sample axis (dim=0).

The relative weight of the original input versus the permuted copy is defined by the mixing parameter. This parameter should be chosen from a Beta(alpha, alpha) distribution for some parameter alpha > 0. Note that the same mixing is used for the whole batch.

Parameters
• input (Tensor) – input tensor of shape (minibatch, ...), where ... indicates zero or more dimensions.

• target (Tensor) – target tensor of shape (minibatch, ...), where ... indicates zero or more dimensions.

• mixing (float, optional) – coefficient used to interpolate between the two examples. If provided, must be in $$[0, 1]$$. If None, value is drawn from a Beta(alpha, alpha) distribution. Default: None.

• alpha (float, optional) – parameter for the Beta distribution over mixing. Ignored if mixing is provided. Default: 0.2.

• indices (Tensor, optional) – Permutation of the samples to use. Default: None.

Returns
• input_mixed (torch.Tensor) – batch of inputs after mixup has been applied

• target_perm (torch.Tensor) – The labels of the mixed-in examples

• mixing (torch.Tensor) – the amount of mixing used

Example

import torch
from composer.functional import mixup_batch

N, C, H, W = 2, 3, 4, 5
X = torch.randn(N, C, H, W)
y = torch.randint(num_classes, size=(N,))
X_mixed, y_perm, mixing = mixup_batch(
X,
y,
alpha=0.2,
)