?
?
? ? ? ? Dropout层的作用是在神经网络中引入正则化,以防止过拟合。它通过随机丢弃一部分神经元(如图2)的输出来减少模型对训练数据的依赖性。这样可以提高模型的泛化能力,使其在测试数据上表现更好。
? ? ? ? Dropout层的核心思想是减小神经网络中权重共享的情况,让不同的神经元可以承担不同的特征提取任务。由于每个神经元被丢弃的概率相同,因此每一轮训练都可能得到不同的网络结构,这有助于提高模型的泛化能力。同时,Dropout也有助于减少神经元之间的依赖性,增强模型的鲁棒性。
keras.layers.Dropout(rate, noise_shape=None, seed=None, **kwargs)
# 导入所需的库
from keras.models import Sequential
from keras.layers import Dense, Dropout
# 创建一个Sequential模型
model = Sequential()
#添加全连接层(Dense)
model.add(Dense(units=64, activation='relu', input_dim=100))
#在全连接层之后添加一个Dropout层,丢弃率为0.5
model.add(Dropout(rate=0.5))
#添加全连接层
model.add(Dense(units=10, activation='softmax'))
#编译模型,设置损失函数、优化器和评估指标
model.compile(loss='categorical_crossentropy',
optimizer='adam',
metrics=['accuracy'])