欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

tf.keras学习之layers.Dropout

程序员文章站 2024-03-15 11:44:29
...

参考

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整数。

例子

tf.keras学习之layers.Dropout
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)还是在预测模式下(不执行任何操作)。