机器学习CV代码练习(三)之Keras创建一个VGG16模型
- VGG16模型图
from keras.models import Sequential
from keras.layers import Conv2D,Dense,Flatten,MaxPool2D
def VGG16():
input_shape=(224,224,3)
model = Sequential()
model.add(Conv2D(64,(3,3),input_shape=input_shape,padding="same",activation="relu"))
model.add(Conv2D(64, (3, 3), padding="same", activation="relu"))
model.add(MaxPool2D(pool_size=(2,2),strides=(2,2)))
model.add(Conv2D(128,(3,3),padding="same",activation="relu"))
model.add(Conv2D(128, (3, 3), padding="same", activation="relu"))
model.add(MaxPool2D(pool_size=(2, 2), strides=(2, 2)))
model.add(Conv2D(256,(3,3),padding="same",activation="relu"))
model.add(Conv2D(256, (3, 3), padding="same", activation="relu"))
model.add(Conv2D(256, (3, 3), padding="same", activation="relu"))
model.add(MaxPool2D(pool_size=(2, 2), strides=(2, 2)))
model.add(Conv2D(512, (3, 3), padding="same", activation="relu"))
model.add(Conv2D(512, (3, 3), padding="same", activation="relu"))
model.add(Conv2D(512, (3, 3), padding="same", activation="relu"))
model.add(MaxPool2D(pool_size=(2, 2), strides=(2, 2)))
model.add(Conv2D(512, (3, 3), padding="same", activation="relu"))
model.add(Conv2D(512, (3, 3), padding="same", activation="relu"))
model.add(Conv2D(512, (3, 3), padding="same", activation="relu"))
model.add(MaxPool2D(pool_size=(2, 2), strides=(2, 2)))
Flatten()
model.add(Dense(4096,activation="relu"))
model.add(Dense(4096, activation="relu"))
model.add(Dense(1000, activation="softmax"))
return model
if __name__ == "__main__":
models = VGG16()
models.summary()