我最初使用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,然后在指定特定vg​​g16层的另一个上执行.get_layer,然后执行.output:
layer_output = model.get_layer('vgg16').get_layer('block3_conv1').output

关于keras - 在Keras中,如何获取与模型中包含的 “Model”对象关联的图层名称?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50283844/

10-12 19:32
查看更多