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

Dropout 层

[源]

Dropout

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: 表示将与输入相乘的二进制 dropout mask 形状的一维整数张量。例如,如果你的输入形状为 (batch_size, timesteps, features),并且你希望 dropout mask 对所有 timesteps 都相同,则可以使用 noise_shape=(batch_size, 1, features)
  • seed: 用作随机种子的 Python 整数。

调用参数

  • inputs: 输入张量(任意秩)。
  • training: Python 布尔值,指示层应在训练模式(应用 dropout)还是推理模式(不执行任何操作)下运行。