Keras:将图层推回模型时无法提取图层输出

Keras:将图层推回模型时无法提取图层输出,keras,keras-layer,Keras,Keras Layer,我有一个Keras分类网络,最后两层分别为致密层和活化层。我从模型中弹出图层,如下所示: activationlayer=classifier.layers.pop() denselayer=classifier.layers.pop() 然后我将层推回到模型中: outt1=denselayer(classifier.layers[-1].output) outt=activationlayer(outt1) classifier=Model(classifier.input,outt)

我有一个Keras分类网络,最后两层分别为致密层和活化层。我从模型中弹出图层,如下所示:

activationlayer=classifier.layers.pop()
denselayer=classifier.layers.pop()
然后我将层推回到模型中:

outt1=denselayer(classifier.layers[-1].output)
outt=activationlayer(outt1)
classifier=Model(classifier.input,outt)
现在,在索引稠密层的输出时,我得到一个错误:

classifier.layers[-2].output

Error: Layer out2 has multiple inbound nodes, hence the notion of "layer output" is ill-defined.

似乎您需要调用要调用的确切输入节点,以便使用层进行输出。在(0)处获取输出。请参阅此处的详细信息:使用分类器。get_output_at(-2)它给出索引错误:列出索引超出范围。您在模型中创建了一个分支,原始分支的输出为0,新分支的输出为1。@DanielMöller我不明白。请您澄清一下。只需尝试
层。在(0)
层获取输出。在(1)
获取输出,其中一个可以工作。--Keras模型不是可以添加/删除图层的列表。它们形成了一个完整的图形,连接着持久的张量。您使用已使用的张量的输出创建了新的张量。您在“树”中转换了“顺序”模型,您需要选择现在从哪个分支获取张量。似乎您需要调用要调用的精确输入节点,以便使用层进行输出。在(0)处获取输出。请参阅此处的详细信息:使用分类器。get_output_at(-2)它给出索引错误:列出索引超出范围。您在模型中创建了一个分支,原始分支的输出为0,新分支的输出为1。@DanielMöller我不明白。请您澄清一下。只需尝试
层。在(0)
层获取输出。在(1)
获取输出,其中一个可以工作。--Keras模型不是可以添加/删除图层的列表。它们形成了一个完整的图形,连接着持久的张量。您使用已使用的张量的输出创建了新的张量。您在“树”中转换了“顺序”模型,现在需要选择从哪个分支获得张量。