“ValueError:Graph disconnected:无法获取tensor KerasTensor的值”将vgg16基连接到自己的FC层时出现此错误

2024-10-03 15:30:37 发布

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

在这个模型中,我将vgg16基本模型连接到一个FC层,然后连接到输出层。 这就是整个模型的样子。 enter image description here

如果我在vgg16上展开,我有:

enter image description here

我试图使用函数api将模型输入作为输入和两个输出,第一个是“block5_conv3”层,第二个是模型输出(dense_19)

我的代码如下:

model = Model(inputs=[clf.get_layer('vgg16').input],
  outputs = [clf.get_layer('vgg16').get_layer('block5_conv3').output, clf.output])

对此,我收到以下错误:- enter image description here

我想不出我做错了什么


Tags: 函数代码模型layerapioutputgetmodel
1条回答
网友
1楼 · 发布于 2024-10-03 15:30:37

您应该首先从VGG16定义一个中间模型,该模型返回所有所需的输出(在您的示例中:block5_conv3和最终输出)

vgg16 = VGG16(input_shape=(96,96,3), weights='imagenet', include_top=False)
extraction_model = Model(
    inputs = [vgg16.input],
    outputs = [vgg16.get_layer('block5_conv3').output, vgg16.output])

然后,您可以将其用作新体系结构中的标准功能提取器:

inp = Input((96,96,3))
block5_conv3, x =  extraction_model(inp)
x = GlobalAveragePooling2D()(x)
x = Dense(64)(x)
x = Dropout(0.3)(x)
x = BatchNormalization()(x)
output = Dense(2, activation='softmax')(x)
model = Model(inputs=inp, outputs=[block5_conv3, output])

相关问题 更多 >