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) 的比例放大,以便所有输入的总和保持不变。

请注意,只有当 call() 中的 training 设置为 True 时,Dropout 层才会应用,这样在推理时就不会丢弃任何值。当使用 model.fit 时,training 将自动适当地设置为 True。在其他情况下,您可以在调用层时将参数显式设置为 True

(这与为 Dropout 层设置 trainable=False 形成对比。trainable 不会影响层的行为,因为 Dropout 没有任何可以在训练期间冻结的变量/权重。)

参数

  • rate:0 到 1 之间的浮点数。要丢弃的输入单元的分数。
  • noise_shape:表示将与输入相乘的二元 Dropout 掩码形状的一维整数张量。例如,如果您的输入形状为 (batch_size, timesteps, features),并且希望 Dropout 掩码对所有时间步长都相同,则可以使用 noise_shape=(batch_size, 1, features)
  • seed:用作随机种子的 Python 整数。

调用参数

  • inputs:输入张量(任何秩)。
  • training:Python 布尔值,指示层是否应该以训练模式(添加 Dropout)或推理模式(不执行任何操作)运行。