Keras JSON 导出:inbound_nodes

Keras JSON export: inbound_nodes

我正在尝试理解以及如何解释 keras 模型的 JSON 表示。每个图层的输入都保存在字段 inbound_nodes 中。我不明白的是它们是数组。

例如,合并层的 2 个输入看起来像这样:

inbound_nodes: [
  [
    ['average_pooling2d_1', 0, 0, {}],
    ['conv2d_3', 0, 0, {}],
  ]
]

所有数组怎么了?为什么不这样保存:

inbound_nodes: ['average_pooling2d_1', 'conv2d_3']

我猜这个结构是因为有时必须以某种方式保存额外的信息。那是什么信息?例如。 inbound_nodes 的大小何时大于 1?

后面的参数'pooling2d'可能是为了将来features.The大小inbound_nodes>1当层有其他数据stream.For更多细节,检查节点的定义层 keras source code

所以这是我发现的:

  • 如果重复使用Layer,则使用外部数组。
  • 如果图层有多个输入,则使用内部数组。
  • 位置[0]显然是层名
  • 如果 "Layer" 是名称是模型,则位置 [1] 为 1,例如["Base Model", 1, ...] 表示可以在基础模型配置中找到该层。如果名称对应于层,则为 0。
  • 在位置 [2] 上是输出层的索引,以防位置 [1] 的值为 1,因此代表一个模型

仍然不确定字典