tf.keras学习之layers.Dropout

参考

tensorflow社区

做什么的?

将Dropout应用到输入

使用

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

参数

rate:在0到1之间浮动。要降低的输入单位的分数。
noise_shape:1D张量类型,int32表示将与输入相乘的二进制丢失掩码的形状;例如,如果您的输入具有形状(batch_size, timesteps, features),并且您希望所有时间步长的丢失掩码相同,则可以使用noise_shape=[batch_size, 1, features].,就是哪一个是1,那么就在哪一维度按照相同的方式dropout,如果没有1就是普通的。
这个参数有篇文章我觉得解释的很好,dropout中的noise_shape参数的作用
seed:用作随机种子的Python整数。

例子

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

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

(这与设置trainable=FalseDropout层相反。 trainable它不会影响该层的行为,因为Dropout没有任何可在训练过程中冻结的变量/权重。)

可变参数

inputs:输入张量(任何等级)。
training:Python布尔值,指示该层是应在训练模式下(添加dropout)还是在预测模式下(不执行任何操作)。

猜你喜欢

转载自blog.csdn.net/fuzizhu1/article/details/106116429