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?

24
demandé sur Yash 2016-03-04 12:25:12

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()
50
répondu Serj Zaharchenko 2016-03-06 13:07:21
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])
11
répondu Anuj Gupta 2016-03-04 09:49:27

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.

0
répondu Miguel A. Sanchez-Perez 2018-06-19 17:50:42