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,因此代表一个模型
仍然不确定字典
我正在尝试理解以及如何解释 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,因此代表一个模型
仍然不确定字典