Comment trouver le nombre des paramètres du modèle keras?
Pour un réseau Feedforward (FFN), il est facile de calculer le nombre de paramètres. Étant donné un CNN, LSTM etc, existe-t-il un moyen rapide de trouver le nombre de paramètres dans un modèle keras?
3 réponses
Les modèles et les couches ont une méthode spéciale à cet effet:
model.count_params()
Aussi, pour obtenir un bref résumé des dimensions et des paramètres de chaque couche, vous pouvez trouver utile la méthode suivante
model.summary()
import keras.backend as K
def size(model): # Compute number of params in a model (the actual number of floats)
return sum([np.prod(K.get_value(w).shape) for w in model.trainable_weights])
En retraçant la fonction print_summary()
, les développeurs de Keras calculent le nombre de paramètres entraînables et non entraînables d'un model
donné comme suit:
import keras.backend as K
import numpy as np
trainable_count = int(np.sum([K.count_params(p) for p in set(model.trainable_weights)]))
non_trainable_count = int(np.sum([K.count_params(p) for p in set(model.non_trainable_weights)]))
Étant donné que K.count_params()
est défini comme np.prod(int_shape(x))
, Cette solution est assez similaire à celle D'Anuj Gupta, sauf pour l'utilisation de set()
et la façon dont la forme des tenseurs est récupérée.