您可以使用
pop()on
model.layers,然后使用
model.layers[-1].output来创建新层。
例:
from keras.models import Modelfrom keras.layers import Dense,Flattenfrom keras.applications import vgg16from keras import backend as Kmodel = vgg16.VGG16(weights='imagenet', include_top=True)model.inputmodel.summary(line_length=150)model.layers.pop()model.layers.pop()model.summary(line_length=150)new_layer = Dense(10, activation='softmax', name='my_dense')inp = model.inputout = new_layer(model.layers[-1].output)model2 = Model(inp, out)model2.summary(line_length=150)
或者,您可以使用
include_top=False这些模型的选项。在这种情况下,如果您需要使用平坦化图层,则需要传递图层
input_shape。
model3 = vgg16.VGG16(weights='imagenet', include_top=False, input_shape=(224, 224, 3))model3.summary(line_length=150)flatten = Flatten()new_layer2 = Dense(10, activation='softmax', name='my_dense_2')inp2 = model3.inputout2 = new_layer2(flatten(model3.output))model4 = Model(inp2, out2)model4.summary(line_length=150)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)