一:适用范围:

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

二:原理:

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

三:函数介绍:

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

  x:  输入值

  keep_prob: float类型,每个元素被保留下来的概率

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

四:举例说明:

  1. # -*- coding: utf-8 -*-
  2. # @Time : 18-5-27 下午3:34
  3. # @Author : payneLi
  4. # @Email : lph0729@163.com
  5. # @File : tf_nn_dropout.py
  6.  
  7. import tensorflow as tf
  8. import numpy as np
  9.  
  10. """
  11. 测试Tensor经过dropout()的效果:
  12. 1.输入与输出的Tensor的shape相同;
  13. 2.随机使某些元素值为0,非零元素为:对应值/keep_prob
  14. """
  15. dropout = tf.placeholder(tf.float32)
  16. x = tf.reshape(np.array(range(36), dtype=np.float32), [6, 6])
  17. y = tf.nn.dropout(x, dropout)
  18. print(x, y)
  19.  
  20. init = tf.global_variables_initializer()
  21. with tf.Session() as sess:
  22. sess.run(init)
  23. print(sess.run(x))
  24. print(sess.run(y, feed_dict={dropout: 0.5}))
  25.  
  26. ----> 运行结果:
      x :

    [[ 0. 1. 2. 3. 4. 5.]
    [ 6. 7. 8. 9. 10. 11.]
    [12. 13. 14. 15. 16. 17.]
    [18. 19. 20. 21. 22. 23.]
    [24. 25. 26. 27. 28. 29.]
    [30. 31. 32. 33. 34. 35.]]

  y :   

    [[ 0. 0. 4. 6. 8. 0.]
    [ 0. 0. 16. 0. 20. 22.]
    [24. 26. 28. 0. 0. 0.]
    [ 0. 38. 40. 0. 44. 46.]
    [48. 0. 0. 54. 56. 58.]
    [60. 0. 0. 66. 68. 0.]]

TensorFlow之tf.nn.dropout():防止模型训练过程中的过拟合问题的更多相关文章

  1. TensorFlow学习---tf.nn.dropout防止过拟合

    一. Dropout原理简述: tf.nn.dropout是TensorFlow里面为了防止或减轻过拟合而使用的函数,它一般用在全连接层. Dropout就是在不同的训练过程中随机扔掉一部分神经元.也 ...

  2. TensorFlow学习笔记 速记1——tf.nn.dropout

    tf.nn.dropout(x, keep_prob, noise_shape=None, seed=None,name=None)  上面方法中常用的是前两个参数: 第一个参数 x:指输入: 第二个 ...

  3. TensorFlow函数教程:tf.nn.dropout

    tf.nn.dropout函数 tf.nn.dropout( x, keep_prob, noise_shape=None, seed=None, name=None ) 定义在:tensorflow ...

  4. Tensorflow学习笔记(2):tf.nn.dropout 与 tf.layers.dropout

    A quick glance through tensorflow/python/layers/core.py and tensorflow/python/ops/nn_ops.pyreveals t ...

  5. tensorflow 笔记11:tf.nn.dropout() 的使用

    tf.nn.dropout:函数官网说明: tf.nn.dropout( x, keep_prob, noise_shape=None, seed=None, name=None ) Defined ...

  6. 深度学习原理与框架-Tensorflow卷积神经网络-卷积神经网络mnist分类 1.tf.nn.conv2d(卷积操作) 2.tf.nn.max_pool(最大池化操作) 3.tf.nn.dropout(执行dropout操作) 4.tf.nn.softmax_cross_entropy_with_logits(交叉熵损失) 5.tf.truncated_normal(两个标准差内的正态分布)

    1. tf.nn.conv2d(x, w, strides=[1, 1, 1, 1], padding='SAME')  # 对数据进行卷积操作 参数说明:x表示输入数据,w表示卷积核, stride ...

  7. tf.nn.dropout

    tf.nn.dropout(x, keep_prob, noise_shape=None, seed=None, name=None) 此函数是为了防止在训练中过拟合的操作,将训练输出按一定规则进行变 ...

  8. tensorflow 之tf.nn.depthwise_conv2d and separable_conv2d实现及原理

    Depthwise Separable Convolution 1.简介 Depthwise Separable Convolution 是谷歌公司于2017年的CVPR中在论文”Xception: ...

  9. 【TensorFlow】TF-tf.nn.dropout

    官方的接口是这样的 tf.nn.dropout(x, keep_prob, noise_shape=None, seed=None, name=None) 根据给出的keep_prob参数,将输入te ...

随机推荐

  1. PLSQL使用绑定变量

    想对一个sql做10046trace,结果因为10g数据库无法对sql_id做,只能使用绑定变量的方法,下面sql是如何使用绑定变量运行sql的语句 declare  v_sql  VARCHAR2( ...

  2. [转]java中的Static class

    转自:http://www.cnblogs.com/kissazi2/p/3971065.html Java中的类可以是static吗?答案是可以.在java中我们可以有静态实例变量.静态方法.静态块 ...

  3. jquery获取前一个月日期

    一) 重构Date对象: // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) 可以用 1-2 个占位符, // 年 ...

  4. hdu-2879 hehe---积性函数

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2879 题目大意: he[n]为小于n且满足x^2 = x (mod n)的个数 hehe[n] =  ...

  5. 使用 Open Live Writer 创建我的第一个博文

    希望能在此记录我的技术开发过程. 请记住我的博客首页为:https://www.cnblogs.com/unrulife/ 期待在博客园遇到志同道合的朋友! 希望在博客园开启技术生涯的新篇章!

  6. mongo复制集、分片集(亲测)

    1.1 架构思路: 192.168.50.131              192.168.50.131             192.168.50.132 mongos mongos mongos ...

  7. git终端操作

    1.提交 git add . git commit -m "test" git push origini master 2.分支 创建feature_x分支,并切换到feature ...

  8. idea删除module

    先remove , 再点击delete

  9. 【luogu P1351 联合权值】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1351 做了些提高组的题,不得不说虽然NOIP考察的知识点虽然基本上都学过,但是做起题来还是需要动脑子的. 题 ...

  10. 如何在github上实现预览

    这个问题在网络上有很多答案,但是真正能解决的寥寥无几!接下来我就来尝试一下网络上疯传的几种方法.准备好了吗?我要开车了!!! PS:以下实验上传到github的demo采取导入本地css,js和网络上 ...