Dropout
classkeras.layers.Dropout(rate, noise_shape=None, seed=None, **kwargs)
应用dropout到输入.
Dropout
层在训练时以rate
的频率随机将输入单元设置为0,这有助于防止过拟合.未设置为0的输入会按1 / (1 - rate)
的比例放大,以使所有输入的总和保持不变.
请注意,Dropout
层仅在call()
中将training
设置为True
时应用,以确保在推理过程中不会丢弃任何值.当使用model.fit
时,training
会自动适当地设置为True
.在其他上下文中,您可以在调用层时显式地将参数设置为True
.
(这与为Dropout
层设置trainable=False
不同.trainable
不影响层的行为,因为Dropout
没有任何可以在训练期间冻结的变量/权重.)
参数:
rate: 介于0和1之间的浮点数.要丢弃的输入单元的比例.
noise_shape: 1D整数张量,表示将与输入相乘的二进制dropout掩码的形状.例如,如果您的输入形状为(batch_size, timesteps, features)
,并且您希望dropout掩码对所有时间步相同,则可以使用noise_shape=(batch_size, 1, features)
.
seed: 用作随机种子的Python整数.
调用参数: inputs: 输入张量(任意秩). training: Python布尔值,指示层应在训练模式(添加dropout)还是推理模式(不执行任何操作)下运行.