AlphaDropout(防止过拟合,一般放在最后几层)和selu(自带批归一化的激活函数,relu的进化版,批归一化,Batch Normalization,就是BN,一般用在线性层和卷积层后面)
# tf.keras.models.Sequential()
model = keras.models.Sequential()
model.add(keras.layers.Flatten(input_shape=[28, 28]))
for _ in range(20):
model.add(keras.layers.Dense(100, activation="selu"))
model.add(keras.layers.AlphaDropout(rate=0.5))
# AlphaDropout: 1. 均值和方差不变 2. 归一化性质也不变 这使得批归一化和dropout一起使用成为可能。
# model.add(keras.layers.Dropout(rate=0.5))
model.add(keras.layers.Dense(10, activation="softmax"))
#最后一层用softmax,输出各种分类可能的概率,比如[0.2,0.3,0.1,0.4]就是soft处理之后的。
model.compile(loss="sparse_categorical_crossentropy",
optimizer = "sgd",
metrics = ["accuracy"])
训练的曲线图