对于前馈网络(FFN),可以轻松计算参数数量。鉴于CNN,LSTM等有一种快速查找keras模型中参数数量的方法吗?
答案 0 :(得分:70)
模型和图层具有用于此目的的特殊方法:
model.count_params()
另外,要获得每个图层尺寸和参数的简短摘要,您可能会发现以下方法很有用
model.summary()
答案 1 :(得分:12)
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])
答案 2 :(得分:2)
追溯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()
和张量的形状检索到。
答案 3 :(得分:0)
创建网络后添加:model.summary
它会为您提供网络摘要和参数数量。