J'essaye d'utiliser une couche d'activation dans Keras avec une fonction d'activation ELU et une certaine valeur du paramètre alpha .
Je souhaite utiliser la couche d'activation standard Activation ('elu') .
Le paramètre alpha est défini pour la fonction d'activation elu () dans keras / activations.py . Il a une valeur par défaut de alpha = 1.0 .
Comment puis-je transmettre une valeur différente de alpha à la couche Activation ('elu') ?
Paramètre
Activation ('elu'). activation .__ defaults__ = (val,)
semble être un moyen de changer la valeur par défaut, mais je ne sais pas si cela est judicieux ou si cela a vraiment l'effet souhaité.
Je recherche une solution qui n'implique pas de fonction lambda.
N.B. Je sais que la couche ELU () existe (une 'fonction d'activation avancée') où je peux définir la valeur de alpha directement: ELU (alpha = val) , mais j'aimerais savoir comment définir le paramètre alpha pour une couche Activation ('elu') .
J'utilise Python 2.7 et Keras 2.0.5.
3 Réponses :
Vous pouvez appeler la fonction d'activation en dehors de votre modèle, puis l'ajouter comme:
import keras elu_activation = keras.activations.elu(x, alpha=0.9) model = Sequential() ... model.add(Dense(32 , activation=elu_activation)) ...
Voici un lien vers les documents
Cela ne semble pas fonctionner pour moi. En appelant keras.activations.elu (x, alpha = 0.9) j'obtiens l'erreur NameError: le nom 'x' n'est pas défini , ce qui ne semble pas surprenant.
Vous pouvez le faire avec une fonction lambda:
from keras.activations import elu custom_elu = lambda x: elu(x, alpha=0.4)
Ajoutez ensuite Activation (custom_elu) à votre modèle.
Excusez-moi, j'aurais dû mentionner que je recherche une solution qui n'implique pas de fonction lambda. Je mettrai à jour la question.