Keras 3 API 文档 / 层 API / 正则化层 / Dropout层

Dropout层

[source]

Dropout class

keras.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)还是推理模式(不执行任何操作)下运行.