How to count total number of trainable parameters in a tensorflow model ?

How to count total number of trainable parameters in a tensorflow model ?

Asked on December 17, 2018 in Tensorflow.
Add Comment


  • 3 Answer(s)

        To count total number of trainable parameters in a tensorflow use tf.trainable_variables().

    total_parameters = 0
    for variable in tf.trainable_variables():
        # shape is an array of tf.Dimension
        shape = variable.get_shape()
        print(shape)
        print(len(shape))
        variable_parameters = 1
        for dim in shape:
            print(dim)
            variable_parameters *= dim.value
        print(variable_parameters)
        total_parameters += variable_parameters
    print(total_parameters)
    
    Answered on December 17, 2018.
    Add Comment

    Here is an solution using numpy :

    np.sum([np.prod(v.get_shape().as_list()) for v in tf.trainable_variables()])
    
    Answered on December 17, 2018.
    Add Comment

    Let’s try this code:

    def count_number_trainable_params():
        '''
        Counts the number of trainable variables.
        '''
        tot_nb_params = 0
        for trainable_variable in tf.trainable_variables():
            shape = trainable_variable.get_shape() # e.g [D,F] or [W,H,C]
            current_nb_params = get_nb_params_shape(shape)
            tot_nb_params = tot_nb_params + current_nb_params
        return tot_nb_params
     
    def get_nb_params_shape(shape):
        '''
        Computes the total number of params for a given shap.
        Works for any number of shapes etc [D,F] or [W,H,C] computes D*F and W*H*C.
        '''
        nb_params = 1
        for dim in shape:
            nb_params = nb_params*int(dim)
        return nb_params
    
    Answered on December 17, 2018.
    Add Comment


  • Your Answer

    By posting your answer, you agree to the privacy policy and terms of service.