TF-tf.nn.dropout介绍

TF-tf.nn.dropout介绍

官方的接口是这样的

tf.nn.dropout(x, keep_prob, noise_shape=None, seed=None, name=None)

根据给出的keep_prob参数,将输入tensor x按比例输出。

x : 输入tensor
keep_prob : float类型,每个元素被保留下来的概率
noise_shape : 一个1维的int32张量,代表了随机产生“保留/丢弃”标志的shape。
seed : 整形变量,随机数种子。
name : 名字,没啥用。

一、无noise_shape的情况
一个神经元将以概率keep_prob决定是否放电,如果不放电,那么该神经元的输出将是0,如果该神经元放电,那么该神经元的输出值将被放大到原来的1/keep_prob倍。
上面这句话详细解释为:a中每个元素将以keep_prob的概率决定是否输出,如果不输出那么这个元素就是0;如果输出,为了补偿之前没输出的能量,所以如果一旦输出就把能量变成原来的1/keep_prob倍。
二、有noise_shape的情况
默认情况下,每个神经元是否放电是相互独立的。比如上面的5个元素就是相互独立的,没有影响的。但是,如果noise_shape被修改了,那么他对于变量x就是一个广播形式,而且当且仅当noise_shape[i] == shape(x)[i],x中的元素是相互独立的。比如,shape(x) = [k, l, m, n], noise_shape = [k, 1, 1, n] ,那么每个批和通道都是相互独立的,但是每行和每列的数据都是关联的,即要不都为0,要不就是原来值的1/keep_prob倍。

注意:

1、dropout必须设置概率keep_prob,keep_prob应初始化为占位符placeholder。如:

   keep_prob = tf.placeholder(tf.float32)  

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值