网络结构:
代码实现
from tensorflow.keras import Sequential,layers
model=Sequential()
model.add(layers.Conv2D(input_shape=(224,224,3),filters=64,kernel_size=(3,3),activation='relu',padding='same'))
model.add(layers.Conv2D(filters=64,kernel_size=(3,3),activation='relu',padding='same'))
model.add(layers.MaxPool2D(pool_size=(2,2),strides=2))
model.add(layers.Conv2D(filters=128,kernel_size=(3,3),activation='relu',padding='same'))
model.add(layers.Conv2D(filters=128,kernel_size=(3,3),activation='relu',padding='same'))
model.add(layers.MaxPool2D(pool_size=(2,2),strides=2))
model.add(layers.Conv2D(filters=256,kernel_size=(3,3),activation='relu',padding='same'))
model.add(layers.Conv2D(filters=256,kernel_size=(3,3),activation='relu',padding='same'))
model.add(layers.Conv2D(filters=256,kernel_size=(3,3),activation='relu',padding='same'))
model.add(layers.MaxPool2D(pool_size=(2,2),strides=2))
model.add(layers.Conv2D(filters=512,kernel_size=(3,3),activation='relu',padding='same'))
model.add(layers.Conv2D(filters=512,kernel_size=(3,3),activation='relu',padding='same'))
model.add(layers.Conv2D(filters=512,kernel_size=(3,3),activation='relu',padding='same'))
model.add(layers.MaxPool2D(pool_size=(2,2),strides=2))
model.add(layers.Conv2D(filters=512,kernel_size=(3,3),activation='relu',padding='same'))
model.add(layers.Conv2D(filters=512,kernel_size=(3,3),activation='relu',padding='same'))
model.add(layers.Conv2D(filters=512,kernel_size=(3,3),activation='relu',padding='same'))
model.add(layers.MaxPool2D(pool_size=(2,2),strides=2))
model.add(layers.Flatten())
model.add(layers.Dense(units=4096,activation='relu'))
model.add(layers.Dropout(0.5))
model.add(layers.Dense(units=4096,activation='relu'))
model.add(layers.Dropout(0.5))
model.add(layers.Dense(units=1000))
model.compile()
model.summary()
模型概要打印结果: