我最初使用VGG16网络构建了一个顺序模型,例如:
from keras.applications import VGG16
conv_base = VGG16(weights='imagenet',
# do not include the top, fully-connected Dense layers
include_top=False,
input_shape=(150, 150, 3))
from keras import models
from keras import layers
model = models.Sequential()
model.add(conv_base)
model.add(layers.Flatten())
model.add(layers.Dense(256, activation='relu'))
# the 3 corresponds to the three output classes
model.add(layers.Dense(3, activation='sigmoid'))
我的模型如下所示:
model.summary()
现在,我想获取与网络的vgg16 Model部分关联的图层名称。即就像是:
layer_name = 'block3_conv1'
filter_index = 0
layer_output = model.get_layer(layer_name).output
loss = K.mean(layer_output[:, :, :, filter_index])
但是,由于vgg16卷积被显示为模型,并且其图层未公开,因此出现错误:
我该怎么做呢?
最佳答案
关键是首先在Model对象上执行.get_layer
,然后在指定特定vgg16层的另一个上执行.get_layer
,然后执行.output:layer_output = model.get_layer('vgg16').get_layer('block3_conv1').output
关于keras - 在Keras中,如何获取与模型中包含的 “Model”对象关联的图层名称?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50283844/