有没有一种方法可以获取 Keras 模型中层数的数量(而不是参数)?
model.summary()
提供了很多信息,但从中获取层数并不直观。
有没有一种方法可以获取 Keras 模型中层数的数量(而不是参数)?
model.summary()
提供了很多信息,但从中获取层数并不直观。
model.layers
会给出所有层的列表。其数量是len(model.layers)
要获得层的图形视图,您可以使用:
from keras.utils.vis_utils import plot_model
plot_model(model, to_file='layers_plot.png', show_shapes=True, show_layer_names=True)
您需要安装 pip install pydot
并从 https://graphviz.gitlab.io/download/
下载并安装 graphviz
。
附上一个 示例输出图像。
虽然这个问题已经问了几年,但今天我遇到了同样的要求。正如@Nickolas所提到的,给定的答案没有考虑子模型。这里有一个递归函数来查找模型中总层数,包括子模型:
def count_layers(model):
num_layers = len(model.layers)
for layer in model.layers:
if isinstance(layer, tf.keras.Model):
num_layers += count_layers(layer)
return num_layers
len(model.layers)
无法计算“子层”,即存在于充当您的超级模型中的层内的模型中的层。 - Nickolas