python - 如何获取 Keras 模型的可训练参数数量?

标签 python keras

我在所有层中设置 trainable=False,通过 Model API 实现,但我想验证它是否有效。 model.count_params() 返回参数的总数,但是除了查看 model 的最后几行之外,有什么方法可以获得可训练参数的总数。总结()?

最佳答案

from keras import backend as K

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

print('Total params: {:,}'.format(trainable_count + non_trainable_count))
print('Trainable params: {:,}'.format(trainable_count))
print('Non-trainable params: {:,}'.format(non_trainable_count))

上面的代码片段可以在layer_utils.print_summary()的末尾找到定义,summary()正在打电话。


编辑:更新版本的 Keras 有一个辅助函数 count_params()为此目的:

from keras.utils.layer_utils import count_params

trainable_count = count_params(model.trainable_weights)
non_trainable_count = count_params(model.non_trainable_weights)

关于python - 如何获取 Keras 模型的可训练参数数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45046525/

相关文章:

python-3.x - 如何从 .h5 文件正确加载带有自定义层的 Keras 模型?

tensorflow - Keras 中的数据并行性

python - Django 如何从给定模型实例的自定义字段调用方法?

python - 如何在 sqlalchemy 中查询表

python - 在 pdfminer.six python 中保留提取文本的布局

python - 塑造 LSTM 的数据,并将密集层的输出馈送到 LSTM

tensorflow - Keras 自动编码器并获取压缩的特征向量表示

Python - BaseHTTPServer do_GET() - wfile.write(filedata) 损坏的管道

Python 赋值运算符优先级 - (a, b) = a[b] = {}, 5

python - Keras TimeDistributed 层实际上是做什么的?