[PYTHON] Implémentation Keras de Shakedrop

introduction

Algo Age Forest: sourire: Je publierai une diapositive qui résume les articles sur Shakedrop et la mise en œuvre de Keras.

À propos de Shakedrop

Slide (annoncé à DL Hacks)

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

la mise en oeuvre

référence

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

implémentation de shakedrop

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): #Définir un calque personnalisé

    def __init__(self, num_of_unit, num_of_layers, **kwargs):
        super(Shakedrop, self).__init__(**kwargs)
        self.num_of_unit = num_of_unit #Quel numéro resbloquer
        self.num_of_layers = num_of_layers #Nombre de couches dans le modèle

    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)) #Plus il est proche de la sortie, plus il est facile de secouer
        bernoulli = tfd.Bernoulli(probs=p).prob(1)
        
        def x_shake():
            # stop_Basculer entre l'avant et l'arrière en utilisant le dégradé
            return (1 - bernoulli) * (beta * x + K.stop_gradient((alpha - beta) * x))

        def x_even():
             #p devient la valeur attendue de b telle qu'elle est
            return p * x

        #X lors de l'apprentissage_x lors du test avec agitation_even
        return K.in_train_phase(x_shake, x_even)

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

Intégré

Il peut être utilisé avec n'importe quel modèle qui a une structure de resnet comme suit.

resblock.py


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

À la fin

Nous recherchons actuellement des ressources humaines! Il existe différents recrutements de stagiaires avec une formation pour apprendre l'apprentissage automatique à partir de zéro, alors n'hésitez pas à nous contacter si vous êtes intéressé: détendu:

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

Recommended Posts

Implémentation Keras de Shakedrop
Implémentation Score-CAM avec keras. Comparaison avec Grad-CAM
Implémentation de Light CNN (Python Keras)
Implémentation simple de l'analyse de régression avec Keras
Mise en œuvre de la fermeture
installation de keras