我目前正在学习使用 Keras 实现分层训练模型。我的解决方案复杂且耗时,有人可以给我一些建议以简单的方式完成吗?也有人可以解释 Keras 的拓扑结构,尤其是 之间的关系nodes.outbound_layer
,nodes.inbound_layer
以及它们如何与张量相关联:input_tensors
和output_tensors
?从github 上的拓扑源代码,我很困惑:
input_tensors[i] == inbound_layers[i].inbound_nodes[node_indices[i]].output_tensors[tensor_indices[i]]
为什么inbound_nodes
contains output_tensors
,我不清楚它们之间的关系....如果我想删除 的某些位置的图层API model
,我应该首先删除什么?另外,在某些地方添加图层时,我应该先做什么?
这是我对分层训练模型的解决方案。我可以在 Sequential 模型上做到这一点,现在尝试在API model
:
为此,我只需在完成之前的训练并重新编译(model.compile()
)和重新拟合(model.fit()
)后添加一个新层。
由于 Keras 模型需要输出层,所以我总是会添加一个输出层。结果,每次我想添加一个新层时,我都必须删除输出层然后再添加回来。这可以使用 来完成model.pop()
,在这种情况下model
必须是keras.Sequential()
模型。
该Sequential()
模型支持许多有用的功能,包括model.add(layer)
. 但是对于使用模型 API: 的自定义模型model=Model(input=...., output=....)
,这些pop()
或add()
功能不受支持,实现它们需要一些时间,而且可能不方便。