dropout 是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃,
可以用来防止过拟合,layers 模块中提供了 tf.layers.dropout() 方法来实现这一操作,定义在 tensorflow/python/layers/core.py。下面我们来说明一下它的用法。
dropout( inputs, rate=0.5, noise_shape=None, seed=None, training=False, name=None)
- inputs:必须,即输入数据。
- rate:可选,默认为 0.5,即 dropout rate,如设置为 0.1,则意味着会丢弃 10% 的神经元。
- noise_shape:可选,默认为 None,int32 类型的一维 Tensor,它代表了 dropout mask 的 shape,dropout mask 会与 inputs 相乘对 inputs 做转换,例如 inputs 的 shape 为 (batch_size, timesteps, features),但我们想要 droput mask 在所有 timesteps 都是相同的,我们可以设置 noise_shape=[batch_size, 1, features]。
- seed:可选,默认为 None,即产生随机熟的种子值。
- training:可选,默认为 False,布尔类型,即代表了是否标志位 training 模式。
- name:可选,默认为 None,dropout 层的名称。
返回: 经过 dropout 层之后的 Tensor。