tf.nn.dropout()的用法

tf.nn.dropout()是tensorflow里面为了防止或减轻过拟合而使用的函数,它一般用在全连接层

Dropout就是在不同的训练过程中随机扔掉一部分神经元。也就是让某个神经元的激活值以一定的概率p,让其停止工作,这次训练过程中不更新权值,也不参加神经网络的计算。但是它的权重得保留下来(只是暂时不更新而已),因为下次样本输入时它可能又得工作了

tf.nn.dropout函数说明

tf.nn.dropout(

    x,

    keep_prob,
    
    noise_shape=None,

     seed=None,

    name=None

)

参数说明:

x:指输入,输入tensor

keep_prob: float类型,每个元素被保留下来的概率,设置神经元被选中的概率,在初始化时keep_prob是一个占位符, keep_prob = tf.placeholder(tf.float32) 。tensorflow在run时设置keep_prob具体的值,例如keep_prob: 0.5

noise_shape  : 一个1维的int32张量,代表了随机产生“保留/丢弃”标志的shape。

seed : 整形变量,随机数种子。

name:指定该操作的名字

 

dropout必须设置概率keep_prob,并且keep_prob也是一个占位符,跟输入是一样的

keep_prob = tf.placeholder(tf.float32)

train的时候才是dropout起作用的时候,test的时候不应该让dropout起作用

你可能感兴趣的:(tensorflow)