def VGG_16_2_v2(classes_number, optim_name='Adam', learning_rate=-1):
from keras.layers.core import Dense, Dropout, Flatten
from keras.applications.vgg16 import VGG16
from keras.models import Model
from keras.layers import Input
input_tensor = Input(shape=(3, 224, 224))
base_model = VGG16(input_tensor=input_tensor, include_top=False, weights='imagenet')
x = base_model.output
x = Flatten()(x)
x = Dense(256, activation='relu')(x)
x = Dropout(0.2)(x)
x = Dense(256, activation='relu')(x)
x = Dropout(0.2)(x)
x = Dense(classes_number, activation='softmax', name='predictions')(x)
vgg16 = Model(input=base_model.input, output=x)
optim = get_optim('VGG16_KERAS', optim_name, learning_rate)
vgg16.compile(optimizer=optim, loss='categorical_crossentropy', metrics=['accuracy'])
# print(vgg16.summary())
return vgg16
评论列表
文章目录