[PYTHON] Shakedrops Keras-Implementierung

Einführung

Algo Age Forest: grinsend: Ich werde eine Folie veröffentlichen, die die Artikel rund um Shakedrop und die Implementierung von Keras zusammenfasst.

Über Shakedrop

Folie (angekündigt bei DL Hacks)

https://www.slideshare.net/DeepLearningJP2016/dl-hacks-shakedrop-by-keras

Implementierung

Referenz

・ Https://github.com/jonnedtc/Shake-Shake-Keras ・ Https://github.com/owruby/shake-drop_pytorch

Shakedrop-Implementierung

shakedrop_model.py



import keras
from keras import Input
from keras import backend as K
from tensorflow import distributions as tfd

class Shakedrop(layers.Layer): #Definieren Sie eine benutzerdefinierte Ebene

    def __init__(self, num_of_unit, num_of_layers, **kwargs):
        super(Shakedrop, self).__init__(**kwargs)
        self.num_of_unit = num_of_unit #Welche Nummer neu blockieren
        self.num_of_layers = num_of_layers #Anzahl der Ebenen im gesamten Modell

    def build(self, input_shape):
        super(Shakedrop, self).build(input_shape)

    def call(self, x):
        batch_size = K.shape(x)[0]
        alpha = K.random_uniform((batch_size, 1, 1, 1),  minval=-1.0)
        beta = K.random_uniform((batch_size, 1, 1, 1))
        p = 1 - (self.num_of_unit / (2 * self.num_of_layers)) #Je näher am Ausgang, desto leichter ist das Schütteln
        bernoulli = tfd.Bernoulli(probs=p).prob(1)
        
        def x_shake():
            # stop_Wechseln Sie mit einem Farbverlauf zwischen vorwärts und rückwärts
            return (1 - bernoulli) * (beta * x + K.stop_gradient((alpha - beta) * x))

        def x_even():
             #p wird so wie es ist der erwartete Wert von b
            return p * x

        #X beim Lernen_x beim Test mit Schütteln_even
        return K.in_train_phase(x_shake, x_even)

    def compute_output_shape(self, input_shape):
        return input_shape[0]

Eingebaut

Es kann mit jedem Modell verwendet werden, das eine Resnet-Struktur wie folgt aufweist.

resblock.py


return layers.Add(
    [inputs, Shakedrop(num_of_unit=num_of_unit, num_of_layers=num_of_layers)(x)])

Am Ende

Wir suchen derzeit Personal! Es gibt verschiedene Rekrutierungspraktikanten mit Schulungen, um maschinelles Lernen von Grund auf zu lernen. Wenn Sie interessiert sind, können Sie sich gerne an uns wenden: entspannt:

Wantedly: https://www.wantedly.com/companies/company_5667111/projects Homepage: https://www.algoage.net/ Twitter: https://twitter.com/algoage

Recommended Posts

Shakedrops Keras-Implementierung
Score-CAM-Implementierung mit Keras. Vergleich mit Grad-CAM
Implementierung von Light CNN (Python Keras)
Einfache Implementierung einer Regressionsanalyse mit Keras
Abschlussimplementierung
Installation von Keras