【问题标题】:How to find Number of parameters of a keras model?如何找到keras模型的参数数量?
【发布时间】:2016-06-17 23:10:26
【问题描述】:

对于前馈网络 (FFN),很容易计算参数的数量。给定一个 CNN、LSTM 等,有没有一种快速的方法来查找 keras 模型中的参数数量?

【问题讨论】:

    标签: deep-learning keras


    【解决方案1】:

    模型和层为此目的有特殊的方法:

    model.count_params()
    

    此外,要获得每个层尺寸和参数的简短摘要,您可能会发现以下方法很有用

    model.summary()
    

    【讨论】:

      【解决方案2】:
      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])
      

      【讨论】:

        【解决方案3】:

        追溯print_summary() 函数,Keras 开发人员计算给定model 的可训练和不可训练参数的数量如下:

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

        鉴于K.count_params()被定义为np.prod(int_shape(x)),这个解决方案与Anuj Gupta的解决方案非常相似,除了set()的使用和张量形状的检索方式。

        【讨论】:

          【解决方案4】:

          创建网络后添加:model.summary
          它会给你一个关于你的网络和参数数量的摘要。

          【讨论】:

            猜你喜欢
            • 2020-03-19
            • 2022-01-19
            • 2017-12-16
            • 1970-01-01
            • 2017-11-20
            • 2020-08-07
            • 2017-03-16
            • 1970-01-01
            相关资源
            最近更新 更多