如何找到keras模型的参数数量?
How to find Number of parameters of a keras model?
对于前馈网络 (FFN),很容易计算参数的数量。给定一个 CNN、LSTM 等,有没有一种快速的方法可以找到 keras 模型中的参数数量?
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])
模型和层具有用于该目的的特殊方法:
model.count_params()
此外,要获得每一层维度和参数的简短摘要,您可能会发现以下方法很有用
model.summary()
追溯 print_summary()
函数,Keras 开发人员计算给定 model
的可训练参数和 non_trainable 参数的数量如下:
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()
的使用和形状的方式检索张量。
创建网络后添加:model.summary
并且它会给你一个关于你的网络和参数数量的总结。
对于前馈网络 (FFN),很容易计算参数的数量。给定一个 CNN、LSTM 等,有没有一种快速的方法可以找到 keras 模型中的参数数量?
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])
模型和层具有用于该目的的特殊方法:
model.count_params()
此外,要获得每一层维度和参数的简短摘要,您可能会发现以下方法很有用
model.summary()
追溯 print_summary()
函数,Keras 开发人员计算给定 model
的可训练参数和 non_trainable 参数的数量如下:
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()
的使用和形状的方式检索张量。
创建网络后添加:model.summary
并且它会给你一个关于你的网络和参数数量的总结。