web-dev-qa-db-fra.com

Comment initialiser les biais dans un modèle de Keras?

J'essaie de construire un modèle synthétique à Keras et je dois attribuer des valeurs aux poids et aux biais. L'attribution des poids est facile, j'utilise les instructions fournies ici: https://keras.io/initializations/ . Cependant, je n'ai trouvé aucune instruction sur la manière d'attribuer les biais. Des idées?

5
Mohammad Amin

Vous pouvez trouver la réponse ici. https://keras.io/layers/core/

poids : liste des tableaux Numpy à définir comme poids initiaux. La liste Doit comporter 2 éléments, de forme (input_dim, output_dim) et (Output_dim,) pour les pondérations et les biais.

Lors de l'ajout d'un nouveau calque, vous pouvez définir l'argument "poids", une liste contenant les initiales w et b avec la forme spécifiée.

model.add(Dense(50, input_dim= X_train.shape[1], weights = [np.zeros([692, 50]), np.zeros(50)]))

6
Hengda Qi

Vous pouvez également utiliser polar_initializer comme ceci:

model.add(Dense(64,
                kernel_initializer='random_uniform',
                bias_initializer='zeros')

Ceci est de https://keras.io/initializers/

13
StatsSorceress

Initialiser les biais avec une petite valeur positive telle que 0,1

Comme nous utilisons des neurones ReLU, il est également judicieux de les initialiser avec un biais initial légèrement positif pour éviter les "neurones morts".

2
daoliker

L’initialisation du poids et du biais de chaque couche peut être définie via les arguments de mots clés kernel_initializer et bias_initializer, respectivement dans layers.Dense(). Si non défini par l'utilisateur, les paramètres par défaut de kernel_initializer='glorot_uniform' et bias_initializer='zeros' sont appliqués.

Par exemple, si vous souhaitez initialiser l'initialisation pondérale d'une couche sur l'uniforme aléatoire au lieu d'une initialisation glorot et polarisée sur 0,1 au lieu de 0, vous pouvez définir une couche donnée comme suit:

from keras import layers, initializers

layer = layers.Dense(64,
                     activation='relu',
                     kernel_initializer='random_uniform',
                     bias_initializer=initializers.Constant(0.1))(previous_layer)

Voir layers/core/ pour plus de détails sur les arguments de mot clé de couche dense et initializer/ pour les options d'initialisation prédéfinies et personnalisables

0
Trevor Witter