(Geplant zur Bearbeitung)
Siehe ↓ https://arxiv.org/pdf/1710.09412.pdf
def mixup(x, y, batch_size, alpha = 0.2):
l = np.random.beta(alpha, alpha, batch_size)
x_, y_ = sklearn.utils.shuffle(x, y)
shape = tuple(-1 if i == 0 else 1 for i in range(len(x.shape)))
x = l.reshape(shape) * x + (1 - l).reshape(shape) * x_
shape = tuple(-1 if i == 0 else 1 for i in range(len(y.shape)))
y = l.reshape(shape) * y + (1 - l).reshape(shape) * y_
return x, y
Argumentname | Beschreibung (Typ) |
---|---|
x | Eingabedaten (numpy.ndarray) |
y | Ausgabedaten (numpy.ndarray) |
batch_size | Buchstäbliche Chargengröße (int) |
alpha | Parameter, die die β-Verteilung bestimmen (float) |
Es wird angenommen, dass "x" und "y" in Batch-Einheiten eingegeben werden und dass der Datensatz nach jeder Epoche gemischt wird.
l = np.random.beta(alpha, alpha, batch_size)
Hier wird das Mischgewicht berechnet. Die Form von "l" ist "(batch_size)".
x_, y_ = sklearn.utils.shuffle(x, y)
Hier wird das Mischen durchgeführt, während die Entsprechung zwischen "x" und "y" beibehalten wird.
shape = tuple(-1 if i == 0 else 1 for i in range(len(x.shape)))
Hier suchen wir nach einer Form, die l
auf x
sendbar macht.
Wenn beispielsweise die Form von "x" (batch_size, width, height, ch) "und die Form von" l "" (batch_size) "ist, wenn Sie" l * x "ausführen Das Berechnungsergebnis ist nicht wie erwartet. Abhängig von der Form von "x" kann auch ein Fehler wie "Operator konnte nicht gesendet werden ..." auftreten.
x = l.reshape(shape) * x + (1 - l).reshape(shape) * x_
Hier wird "x" gemischt.
shape = tuple(-1 if i == 0 else 1 for i in range(len(y.shape)))
Hier suchen wir nach einer Form, die "l" für "y" sendbar macht.
y = l.reshape(shape) * y + (1 - l).reshape(shape) * y_
Hier wird "y" gemischt.
Rückgabewertname | Beschreibung (Typ) |
---|---|
x | Gemischte Eingabedaten (numpy.ndarray) |
y | Gemischte Ausgabedaten (numpy.ndarray) |
Wenn die Verwechslung angewendet wird, indem die Einheitsmatrix als Eingabedaten betrachtet wird, ist das Ergebnis wie folgt.
α = 0.1 | α = 0.2 | α = 0.3 |
---|---|---|
α = 0.4 | α = 0.5 | α = 0.6 |
---|---|---|
α = 0.7 | α = 0.8 | α = 0.9 |
---|---|---|
Reference
Recommended Posts