tf.nn.dropout()介绍

Posted zhangxian123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tf.nn.dropout()介绍相关的知识,希望对你有一定的参考价值。

1.Dropout原理简述:

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

技术分享图片
技术分享图片

但在测试及验证中:每个神经元都要参加运算,但其输出要乘以概率p。

2、tf.nn.dropout(x,keep_prob,noise_shape=None,seed=None,name=None)函数说明

上面的方法中常用的是前面两个参数:

第一个参数x:指输入

第二个参数keep_prob:设置神经元被选中的概率,在初始化时keep_prob是一个占位符,keep_prob = tf.placeholder(tf.float32) 。tensorflow在run时设置keep_prob具体的值,例如keep_prob: 0.5

第三个参数noise_shape:一个1维的int32张量,代表了随机产生"保留/丢弃"标志的shape

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

name :名字,没什么实际用处。

总结:dropout()函数就是使tensor中某些元素变为0,其它没变0的元素变为原来的1/keep_prob大小。


以上是关于tf.nn.dropout()介绍的主要内容,如果未能解决你的问题,请参考以下文章

TensorFlow之tf.nn.dropout():防止模型训练过程中的过拟合问题

tf.nn.dropout

[tf] tensorflow中dropout小坑记录

Pytorch中nn.Dropout2d的作用

NAS工具箱Drop Path介绍 + Dropout回顾

深度学习论文解读系列--Dropout原理剖析