第一: LeNet5
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import datasets, layers, optimizers, Sequential, metrics
model = Sequential()
model.add( layers.Input( shape = (28, 28, 1) ) )
model.add( layers.Conv2D( filters = 6, kernel_size = [5, 5], strides = [1, 1], padding = "same", activation = "relu") )
model.add( layers.MaxPool2D( pool_size=[2, 2], strides = [2, 2], padding = "same") )
model.add( layers.Conv2D( filters = 16, kernel_size = [5, 5], strides = [1, 1], padding = "valid", activation = "relu") )
model.add( layers.MaxPool2D( pool_size=[2, 2], strides = [2, 2], padding = "same") )
model.add( layers.Flatten() )
model.add( layers.Dense( units = 120, activation = "relu" ) )
model.add( layers.Dense( units = 84, activation = "relu" ) )
model.add( layers.Dense( units = 10, activation = "softmax" ) )
model.summary()
第二:VGG
VGG11-A
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import datasets, layers, optimizers, Sequential, metrics
model = Sequential()
model.add( layers.Input( shape = (224, 224, 3) ) )
model.add( layers.Conv2D( filters = 64, kernel_size = [3, 3], strides = [1, 1], padding = "same", activation = "relu") )
model.add( layers.MaxPool2D( pool_size=[2, 2], strides = [2, 2], padding = "same") )
model.add( layers.Conv2D( filters = 128, kernel_size = [3, 3], strides = [1, 1], padding = "same", activation = "relu") )
model.add( layers.MaxPool2D( pool_size=[2, 2], strides = [2, 2], padding = "same") )
model.add( layers.Conv2D( filters = 256, kernel_size = [3, 3], strides = [1, 1], padding = "same", activation = "relu") )
model.add( layers.Conv2D( filters = 256, kernel_size = [3, 3], strides = [1, 1], padding = "same", activation = "relu") )
model.add( layers.MaxPool2D( pool_size=[2, 2], strides = [2, 2], padding = "same") )
model.add( layers.Conv2D( filters = 512, kernel_size = [3, 3], strides = [1, 1], padding = "same", activation = "relu") )
model.add( layers.Conv2D( filters = 512, kernel_size = [3, 3], strides = [1, 1], padding = "same", activation = "relu") )
model.add( layers.MaxPool2D( pool_size=[2, 2], strides = [2, 2], padding = "same") )
model.add( layers.Conv2D( filters = 512, kernel_size = [3, 3], strides = [1, 1], padding = "same", activation = "relu") )
model.add( layers.Conv2D( filters = 512, kernel_size = [3, 3], strides = [1, 1], padding = "same", activation = "relu") )
model.add( layers.MaxPool2D( pool_size=[2, 2], strides = [2, 2], padding = "same") )
model.add( layers.Flatten() )
model.add( layers.Dense( units = 4096, activation = "relu" ) )
model.add( layers.Dense( units = 4096, activation = "relu" ) )
model.add( layers.Dense( units = 1000, activation = "softmax" ) )
model.summary()
VGG13-B
model = Sequential()
model.add( layers.Input( shape = (224, 224, 3) ) )
model.add( layers.Conv2D( filters = 64, kernel_size = [3, 3], strides = [1, 1], padding = "same", activation = "relu") )
model.add( layers.Conv2D( filters = 64, kernel_size = [3, 3], strides = [1, 1], padding = "same", activation = "relu") )
model.add( layers.MaxPool2D( pool_size=[2, 2], strides = [2, 2], padding = "same")