# Conv
conv_model.add(layers.Conv2D(32, 3, activation=
'relu'
))
conv_model.add(layers.BatchNormalization())
# Dense
dense_model.add(layers.Dense(32, activation=
'relu'
))
dense_model.add(layers.BatchNormalization())
3、深度可分离卷积层,在Keras中被称为SeparableConv2D,其功能与普通Conv2D相同。
但是SeparableConv2D比Conv2D轻,训练快,精度高。
from tensorflow.keras.models import Sequential, Model
from tensorflow.keras import layers
height = 64
width = 64
channels = 3
num_classes = 10
model = Sequential()
model.add(layers.SeparableConv2D(32, 3,
activation=
'relu'
,
input_shape=(height, width, channels,)))
model.add(layers.SeparableConv2D(64, 3, activation=
'relu'
))
model.add(layers.MaxPooling2D(2))
model.add(layers.SeparableConv2D(64, 3, activation=
'relu'
))
model.add(layers.SeparableConv2D(128, 3, activation=
'relu'
))
model.add(layers.MaxPooling2D(2))
model.add(layers.SeparableConv2D(64, 3, activation=
'relu'
))
model.add(layers.SeparableConv2D(128, 3, activation=
'relu'
))
model.add(layers.GlobalAveragePooling2D())
model.add(layers.Dense(32, activation=
'relu'
))
model.add(layers.Dense(num_classes, activation=
'softmax'
))
model.compile(optimizer=
'rmsprop'
, loss=
'categorical_crossentropy'
)