How to find Number of parameters of a keras model?

Deep LearningKeras

Deep Learning Problem Overview


For a Feedforward Network (FFN), it is easy to compute the number of parameters. Given a CNN, LSTM etc is there a quick way to find the number of parameters in a keras model?

Deep Learning Solutions


Solution 1 - Deep Learning

Models and layers have special method for that purpose:

model.count_params()

Also, to get a short summary of each layer dimensions and parameters, you might find useful the following method

model.summary()

Solution 2 - Deep Learning

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])

Solution 3 - Deep Learning

Tracing back the print_summary() function, Keras developers compute the number of trainable and non_trainable parameters of a given model as follows:

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)]))

Given that K.count_params() is defined as np.prod(int_shape(x)), this solution is quite similar to the one of Anuj Gupta, except for the use of set() and the way the shape of the tensors are retrieved.

Solution 4 - Deep Learning

After creating your network add: model.summary
And it will give you a summary of your network and the number of parameters.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAnuj GuptaView Question on Stackoverflow
Solution 1 - Deep LearningSerj ZaharchenkoView Answer on Stackoverflow
Solution 2 - Deep LearningAnuj GuptaView Answer on Stackoverflow
Solution 3 - Deep LearningMiguel A. Sanchez-PerezView Answer on Stackoverflow
Solution 4 - Deep LearningEatonView Answer on Stackoverflow