在 Keras 中,在我自己的模型上使用 include_top= False 是否会删除所有最后的密集层,我可以定义我模型的 "top" 吗?
In Keras, does using include_top= False on my own model will remove all last dense layer and can I define the "top" of my model?
我可以定义哪些层我想定义为“顶层”吗?
据我了解,include_top= false 将删除顶部的所有密集层。
我想使用“include_top=False”对我自己的模型进行迁移学习,并且不希望自动删除所有最后的密集层。
要访问您必须设置的最后一个密集层 include_top = True
。通过这种方式,您可以创建一个 sub-model 包含所有您想要的中间层。这里有一个 VGG16
的例子
from tensorflow.keras.layers import *
from tensorflow.keras.models import *
from tensorflow.keras.applications import VGG16
vgg = VGG16(include_top = True, input_shape = (224,224,3))
new_layer = Dense(32)(vgg.layers[-3].output) # add new layer
sub_model = Model(vgg.input, new_layer)
本例中 sub_model
的最后一层是:
block5_conv3 (Conv2D) (None, 14, 14, 512) 2359808
_________________________________________________________________
block5_pool (MaxPooling2D) (None, 7, 7, 512) 0
_________________________________________________________________
flatten (Flatten) (None, 25088) 0
_________________________________________________________________
fc1 (Dense) (None, 4096) 102764544
_________________________________________________________________
dense_6 (Dense) (None, 32) 131104
我可以定义哪些层我想定义为“顶层”吗?
据我了解,include_top= false 将删除顶部的所有密集层。 我想使用“include_top=False”对我自己的模型进行迁移学习,并且不希望自动删除所有最后的密集层。
要访问您必须设置的最后一个密集层 include_top = True
。通过这种方式,您可以创建一个 sub-model 包含所有您想要的中间层。这里有一个 VGG16
from tensorflow.keras.layers import *
from tensorflow.keras.models import *
from tensorflow.keras.applications import VGG16
vgg = VGG16(include_top = True, input_shape = (224,224,3))
new_layer = Dense(32)(vgg.layers[-3].output) # add new layer
sub_model = Model(vgg.input, new_layer)
本例中 sub_model
的最后一层是:
block5_conv3 (Conv2D) (None, 14, 14, 512) 2359808
_________________________________________________________________
block5_pool (MaxPooling2D) (None, 7, 7, 512) 0
_________________________________________________________________
flatten (Flatten) (None, 25088) 0
_________________________________________________________________
fc1 (Dense) (None, 4096) 102764544
_________________________________________________________________
dense_6 (Dense) (None, 32) 131104