当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.keras.layers.Dropout用法及代码示例


将 Dropout 应用于输入。

继承自:LayerModule

用法

tf.keras.layers.Dropout(
    rate, noise_shape=None, seed=None, **kwargs
)

参数

  • rate 在 0 和 1 之间浮点数。要删除的输入单位的分数。
  • noise_shape 一维整数张量,表示将与输入相乘的二进制 dropout 掩码的形状。例如,如果您的输入具有 (batch_size, timesteps, features) 形状,并且您希望所有时间步的 dropout 掩码都相同,则可以使用 noise_shape=(batch_size, 1, features)
  • seed 用作随机种子的 Python 整数。

Dropout 层在训练期间的每一步以 rate 的频率将输入单元随机设置为 0,这有助于防止过度拟合。未设置为 0 的输入按 1/(1 - 比率) 放大,以使所有输入的总和保持不变。

请注意,Dropout 层仅在 training 设置为 True 时适用,这样在推理期间不会丢弃任何值。使用 model.fit , training 时会自动适当地设置为 True,在其他情况下,您可以在调用层时将 kwarg 显式设置为 True。

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

tf.random.set_seed(0)
layer = tf.keras.layers.Dropout(.2, input_shape=(2,))
data = np.arange(10).reshape(5, 2).astype(np.float32)
print(data)
[[0. 1.]
 [2. 3.]
 [4. 5.]
 [6. 7.]
 [8. 9.]]
outputs = layer(data, training=True)
print(outputs)
tf.Tensor(
[[ 0.    1.25]
 [ 2.5   3.75]
 [ 5.    6.25]
 [ 7.5   8.75]
 [10.    0.  ]], shape=(5, 2), dtype=float32)

调用参数:

  • inputs:输入张量(任意等级)。
  • training:Python 布尔值,指示层应该在训练模式(添加 dropout)还是在推理模式(什么都不做)下运行。

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.keras.layers.Dropout。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。