Keras:如何确定神经网络层数

27

有没有一种方法可以获取 Keras 模型中层数的数量(而不是参数)?

model.summary() 提供了很多信息,但从中获取层数并不直观。

3个回答

46

model.layers会给出所有层的列表。其数量是len(model.layers)


2
len(model.layers) 无法计算“子层”,即存在于充当您的超级模型中的层内的模型中的层。 - Nickolas

0

要获得层的图形视图,您可以使用: 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。 附上一个 示例输出图像


0

虽然这个问题已经问了几年,但今天我遇到了同样的要求。正如@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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接