Dropout 类tf_keras.layers.Dropout(rate, noise_shape=None, seed=None, **kwargs)
应用 Dropout 到输入。
Dropout 层在训练期间会以 rate 的频率随机将输入单元设置为 0,这有助于防止过拟合。未设置为 0 的输入会按 1/(1 - rate) 的比例缩放,以保持所有输入的总和不变。
请注意,Dropout 层仅在 training 设置为 True 时应用,这样在推理期间不会丢弃任何值。在使用 model.fit 时,training 会自动设置为 True;在其他上下文中,您可以在调用层时显式将此关键字参数设置为 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)
参数
(batch_size, timesteps, features),并且您希望 Dropout 掩码在所有时间步长都相同,则可以使用 noise_shape=(batch_size, 1, features)。调用参数