Vous pouvez utiliser la couche LeakyRelu , comme dans la classe python, au lieu de simplement spécifier le nom de la chaîne comme dans votre exemple. Il fonctionne de manière similaire à un calque normal.
Importez le LeakyReLU et instanciez un modèle
from keras.layers import LeakyReLU
model = Sequential()
# here change your line to leave out an activation
model.add(Dense(90))
# now add a ReLU layer explicitly:
model.add(LeakyReLU(alpha=0.05))
La possibilité d'écrire simplement, par exemple, activation='relu'
est rendue possible grâce aux alias simples qui sont créés dans le code source.
Pour votre deuxième question:
quel est le meilleur réglage général pour régler les paramètres de LeakyRelu? Et quand ses performances sont nettement meilleures que Relu?
Je ne peux pas vous donner les paramètres optimaux pour le LeakyReLU, je le crains - ils dépendront du modèle / des données.
La différence entre le ReLU et le LeakyReLU est la capacité de ce dernier à conserver un certain degré des valeurs négatives qui y pénètrent, tandis que le premier définit simplement toutes les valeurs inférieures à 0 à 0. En théorie, cette plage de sortie étendue offre une flexibilité légèrement supérieure au modèle l'utilisant. Je suis sûr que les inventeurs l'ont trouvé utile et ont peut-être prouvé que c'était le cas pour quelques repères. En pratique, cependant, les gens s'en tiennent généralement au ReLU, car les avantages du LeakyReLU ne sont pas cohérents et le ReLU est moins cher à calculer et les modèles s'entraînent donc légèrement plus rapidement.