--- title: Label-mixing transforms keywords: fastai sidebar: home_sidebar summary: "Callbacks that perform data augmentation by mixing samples in different ways." description: "Callbacks that perform data augmentation by mixing samples in different ways." nb_path: "nbs/018_data.mixed_augmentation.ipynb" ---
{% raw %}
{% endraw %} {% raw %}
{% endraw %} {% raw %}
{% endraw %} {% raw %}

class MixHandler1d[source]

MixHandler1d(alpha=0.5) :: Callback

A handler class for implementing mixed sample data augmentation

{% endraw %} {% raw %}
{% endraw %} {% raw %}

class MixUp1d[source]

MixUp1d(alpha=0.4) :: MixHandler1d

Implementation of https://arxiv.org/abs/1710.09412

{% endraw %} {% raw %}
{% endraw %} {% raw %}
from fastai.learner import *
from tsai.models.InceptionTime import *
from tsai.data.external import get_UCR_data
from tsai.data.core import get_ts_dls, TSCategorize
from tsai.data.preprocessing import TSStandardize
from tsai.learner import ts_learner

X, y, splits = get_UCR_data('NATOPS', return_split=False)
tfms = [None, TSCategorize()]
batch_tfms = TSStandardize()
dls = get_ts_dls(X, y, tfms=tfms, splits=splits, batch_tfms=batch_tfms)
learn = ts_learner(dls, InceptionTime, cbs=MixUp1d(0.4))
learn.fit_one_cycle(1)
[0, 1.9250454902648926, 1.826296329498291, '00:06']
{% endraw %} {% raw %}

class CutMix1d[source]

CutMix1d(alpha=1.0) :: MixHandler1d

Implementation of https://arxiv.org/abs/1905.04899

{% endraw %} {% raw %}
{% endraw %} {% raw %}

class IntraClassCutMix1d[source]

IntraClassCutMix1d(alpha=1.0) :: Callback

Implementation of CutMix applied to examples of the same class

{% endraw %} {% raw %}
{% endraw %} {% raw %}
X, y, splits = get_UCR_data('NATOPS', split_data=False)
tfms = [None, TSCategorize()]
batch_tfms = TSStandardize()
dls = get_ts_dls(X, y, tfms=tfms, splits=splits, batch_tfms=batch_tfms)
learn = ts_learner(dls, InceptionTime, cbs=IntraClassCutMix1d())
learn.fit_one_cycle(1)
[0, 1.781386375427246, 1.7941926717758179, '00:04']
{% endraw %} {% raw %}
X, y, splits = get_UCR_data('NATOPS', split_data=False)
tfms = [None, TSCategorize()]
batch_tfms = TSStandardize()
dls = get_ts_dls(X, y, tfms=tfms, splits=splits, batch_tfms=batch_tfms)
learn = ts_learner(dls, cbs=CutMix1d(1.))
learn.fit_one_cycle(1)
[0, 1.7089701890945435, 1.777895450592041, '00:05']
{% endraw %}