[PYTHON] Je souhaite utiliser la fonction d'activation Mish

Nouvelle fonction d'activation Mish

GitHub - digantamisra98/Mish: Mish: A Self Regularized Non-Monotonic Neural Activation Function

Cela semble être une implémentation de Tensorflow-Keras

Mish/mish.py at master · digantamisra98/Mish · GitHub

Je ne sais pas ce qui est difficile, mais j'ai essayé de le coller

Une implémentation détaillée de pytorch et Keras a été écrite ici ...

Le code que je copiais et collais pour la première fois est le suivant

python::1


from __future__ import print_function
from tensorflow.python import keras
from tensorflow.python.keras.datasets import mnist
from tensorflow.python.keras.models import Sequential
from tensorflow.python.keras.layers import Dense, Dropout, Flatten
from tensorflow.python.keras.layers import Conv2D, MaxPooling2D
from tensorflow.python.keras import backend as K
 

"""Tensorflow-Keras Implementation of Mish"""

## Import Necessary Modules
import tensorflow as tf
from tensorflow.keras.layers import Activation
from tensorflow.keras.utils import get_custom_objects

class Mish(Activation):
    '''
    Mish Activation Function.
    .. math::
        mish(x) = x * tanh(softplus(x)) = x * tanh(ln(1 + e^{x}))
    Shape:
        - Input: Arbitrary. Use the keyword argument `input_shape`
        (tuple of integers, does not include the samples axis)
        when using this layer as the first layer in a model.
        - Output: Same shape as the input.
    Examples:
        >>> X = Activation('Mish', name="conv1_act")(X_input)
    '''

    def __init__(self, activation, **kwargs):
        super(Mish, self).__init__(activation, **kwargs)
        self.__name__ = 'Mish'


def mish(inputs):
    return inputs * tf.math.tanh(tf.math.softplus(inputs))

get_custom_objects().update({'Mish': Mish(mish)})



batch_size = 128
num_classes = 10
epochs = 12
 
# input image dimensions
img_rows, img_cols = 28, 28
 
# the data, split between train and test sets
(x_train, y_train), (x_test, y_test) = mnist.load_data()
 
if K.image_data_format() == 'channels_first':
    x_train = x_train.reshape(x_train.shape[0], 1, img_rows, img_cols)
    x_test = x_test.reshape(x_test.shape[0], 1, img_rows, img_cols)
    input_shape = (1, img_rows, img_cols)
else:
    x_train = x_train.reshape(x_train.shape[0], img_rows, img_cols, 1)
    x_test = x_test.reshape(x_test.shape[0], img_rows, img_cols, 1)
    input_shape = (img_rows, img_cols, 1)
 
x_train = x_train.astype('float32')
x_test = x_test.astype('float32')
x_train /= 255
x_test /= 255
print('x_train shape:', x_train.shape)
print(x_train.shape[0], 'train samples')
print(x_test.shape[0], 'test samples')
 
# convert class vectors to binary class matrices
y_train = keras.utils.to_categorical(y_train, num_classes)
y_test = keras.utils.to_categorical(y_test, num_classes)
 
model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3),
                 activation='Mish',
                 input_shape=input_shape))
model.add(Conv2D(64, (3, 3), activation='Mish'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(128, activation='Mish'))
model.add(Dropout(0.5))
model.add(Dense(num_classes, activation='softmax'))
 
model.compile(loss=keras.losses.categorical_crossentropy,
              optimizer=keras.optimizers.Adadelta(),
              metrics=['accuracy'])
 
model.fit(x_train, y_train,
          batch_size=batch_size,
          epochs=epochs,
          verbose=1,
          validation_data=(x_test, y_test))
score = model.evaluate(x_test, y_test, verbose=0)
print('Test loss:', score[0])
print('Test accuracy:', score[1])

Recommended Posts

Je souhaite utiliser la fonction d'activation Mish
Je veux utiliser le jeu de données R avec python
Je veux utiliser la dernière version de gcc même si je n'ai pas les privilèges sudo! !!
Je souhaite utiliser uniquement le traitement de normalisation SudachiPy
[Python] Je souhaite utiliser l'option -h avec argparse
Je veux utiliser jar de python
Je veux utiliser Linux sur mac
Je souhaite utiliser la console IPython Qt
Je veux afficher la barre de progression
Je veux gérer la rime part2
Je veux gérer la rime part5
Je veux gérer la rime part4
Je veux obtenir le nom de la fonction / méthode en cours d'exécution
Je souhaite utiliser Django Debug Toolbar dans les applications Ajax
Je souhaite utiliser le répertoire temporaire avec Python2
Je veux utiliser le solveur ceres de python
Je ne veux pas utiliser -inf avec np.log
Je souhaite utiliser ip vrf avec SONiC
Je souhaite personnaliser l'apparence de zabbix
Je veux afficher la progression en Python!
[Ansible] Je souhaite appeler ma propre fonction à partir du module de modèle (macro)
Je souhaite utiliser Python dans l'environnement de pyenv + pipenv sous Windows 10
Je veux obtenir le nom du fichier, le numéro de ligne et le nom de la fonction dans Python 3.4
J'ai essayé d'entraîner la fonction péché avec chainer
Je veux voir le nom de fichier de DataLoader
Je veux utiliser self avec Backpropagation (tf.custom_gradient) (tensorflow)
Je veux grep le résultat de l'exécution de strace
Je veux faire défiler la table de décalage Django, mais ...
Je voulais utiliser la bibliothèque Python de MATLAB
Je veux hériter de l'arrière avec la classe de données python
Je veux bien comprendre les bases de Bokeh
Je veux écrire en Python! (3) Utiliser des simulacres
Je souhaite utiliser OpenJDK 11 avec Ubuntu Linux 18.04 LTS / 18.10
Je veux gérer la rime part6 (organiser une fois)
Je veux automatiser ssh en utilisant la commande expect!
Je souhaite publier le produit au moindre coût
Le langage de programmation que vous souhaitez pouvoir utiliser
Je veux gérer la rime part8 (fini une fois)
Je souhaite augmenter la sécurité de la connexion SSH
Concernant la fonction d'activation Gelu
Comment utiliser le générateur
Quelle est la fonction d'activation?
Comment utiliser le décorateur
Je souhaite également utiliser les commandes Linux à l'invite de commande! Utilisez les commandes Linux à l'invite de commande au lieu de Git Bash
[TensorFlow] Je souhaite maîtriser l'indexation pour Ragged Tensor
Je veux initialiser si la valeur est vide (python)
Je souhaite enregistrer les photos envoyées par LINE vers S3
Je veux automatiser ssh en utilisant la commande expect! partie 2
maya Python Je veux réparer à nouveau l'animation cuite.
Je veux déplacer le sélénium pour le moment [pour mac]
Je veux obtenir des informations sur le fonctionnement de Yahoo Route
J'ai fait une fonction pour vérifier le modèle de DCGAN
Je souhaite calculer le temps d'arrêt autorisé à partir du taux de fonctionnement
Je veux déterminer l'authenticité d'un élément du tableau numpy
Je souhaite utiliser un environnement virtuel avec jupyter notebook!
Je ne savais pas comment utiliser l'instruction [python] for
J'ai essayé d'implémenter la fonction d'envoi de courrier en Python
Je veux connaître la nature de Python et pip
Si vous souhaitez que vos collègues utilisent la même langue
Je veux rendre le type de dictionnaire dans la liste unique