Como encontrar o número de parâmetros de um modelo keras?

votos
21

Para uma rede Feedforward (FFN), é fácil calcular o número de parâmetros. Dada a CNN, LSTM etc há uma maneira rápida de encontrar o número de parâmetros em um modelo keras?

Publicado 04/03/2016 em 07:25
fonte usuário
Em outras línguas...                            


3 respostas

votos
10
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])
Respondeu 04/03/2016 em 07:49
fonte usuário

votos
46

Modelos e camadas têm método especial para esse fim:

model.count_params()

Além disso, para obter um breve resumo de cada dimensões de camada e parâmetros, que você pode achar útil o seguinte método

model.summary()
Respondeu 06/03/2016 em 11:07
fonte usuário

votos
0

Rastreando a print_summary()função, desenvolvedores Keras calcular o número de parâmetros treináveis e non_trainable de um dado modelda seguinte forma:

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

Dado que K.count_params()é definida como np.prod(int_shape(x)), esta solução é muito semelhante ao de um Anuj Gupta, excepto pela utilização de set()e a forma como a forma dos tensores são recuperados.

Respondeu 19/06/2018 em 16:50
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more