Kerasvis给出以下错误:AttributeError:多个入站节点

2024-06-24 12:09:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着按照this example使用我自己的模型,如下所示:

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
input_2 (InputLayer)         (None, 150, 150, 3)       0         
_________________________________________________________________
block1_conv1 (Conv2D)        (None, 150, 150, 64)      1792      
_________________________________________________________________
block1_conv2 (Conv2D)        (None, 150, 150, 64)      36928     
_________________________________________________________________
block1_pool (MaxPooling2D)   (None, 75, 75, 64)        0         
_________________________________________________________________
block2_conv1 (Conv2D)        (None, 75, 75, 128)       73856     
_________________________________________________________________
block2_conv2 (Conv2D)        (None, 75, 75, 128)       147584    
_________________________________________________________________
block2_pool (MaxPooling2D)   (None, 37, 37, 128)       0         
_________________________________________________________________
block3_conv1 (Conv2D)        (None, 37, 37, 256)       295168    
_________________________________________________________________
block3_conv2 (Conv2D)        (None, 37, 37, 256)       590080    
_________________________________________________________________
block3_conv3 (Conv2D)        (None, 37, 37, 256)       590080    
_________________________________________________________________
block3_pool (MaxPooling2D)   (None, 18, 18, 256)       0         
_________________________________________________________________
block4_conv1 (Conv2D)        (None, 18, 18, 512)       1180160   
_________________________________________________________________
block4_conv2 (Conv2D)        (None, 18, 18, 512)       2359808   
_________________________________________________________________
block4_conv3 (Conv2D)        (None, 18, 18, 512)       2359808   
_________________________________________________________________
block4_pool (MaxPooling2D)   (None, 9, 9, 512)         0         
_________________________________________________________________
block5_conv1 (Conv2D)        (None, 9, 9, 512)         2359808   
_________________________________________________________________
block5_conv2 (Conv2D)        (None, 9, 9, 512)         2359808   
_________________________________________________________________
block5_conv3 (Conv2D)        (None, 9, 9, 512)         2359808   
_________________________________________________________________
block5_pool (MaxPooling2D)   (None, 4, 4, 512)         0         
_________________________________________________________________
sequential_1 (Sequential)    (None, 1)                 2097665   
=================================================================

但我得到一个错误:

AttributeError: Layer sequential_2 has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use get_output_at(node_index) instead.

我不知道从哪里开始。经过一番搜索,我认为这与最后一层是一个连续层有关,而不是一个密集层,它在示例中的VGG16模型中。在

这个模型就像Keras的猫或狗一样,经过微调。在

如果有任何帮助或想法,我将不胜感激!在

编辑: 如果有助于查看代码:

^{pr2}$

Tags: 模型nonelayerpoolsequentialconv2dmaxpooling2dconv1
1条回答
网友
1楼 · 发布于 2024-06-24 12:09:52

对于一个具有两个输出节点的非常相似的网络,密集型_1_1,我也遇到了类似的错误/Relu:0和顺序式2/密集型/雷鲁:0。我的解决办法是损失.py并将layer_output = self.layer.output更改为layer_output = self.layer.get_output_at(-1)。这与其说是一种解决方案,不如说是一种变通办法。当有一个输出节点时,取最后一个节点[-1]就可以了,而当有两个节点接收最后一个节点时,最后一个对我有效。但这会给你带来线索。同时尝试层输出=self.layer.get_输出位于(0)或其他节点(如果有)。 有一个相关的开放问题here。在

相关问题 更多 >