一:适用范围:

  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

四:举例说明:

# -*- coding: utf-8 -*-
# @Time    : 18-5-27 下午3:34
# @Author  : payneLi
# @Email   : lph0729@163.com
# @File    : tf_nn_dropout.pyimport tensorflow as tf
import numpy as np"""
测试Tensor经过dropout()的效果:1.输入与输出的Tensor的shape相同;2.随机使某些元素值为0,非零元素为:对应值/keep_prob
"""
dropout = tf.placeholder(tf.float32)
x = tf.reshape(np.array(range(36), dtype=np.float32), [6, 6])
y = tf.nn.dropout(x, dropout)
print(x, y)init = tf.global_variables_initializer()
with tf.Session() as sess:sess.run(init)print(sess.run(x))print(sess.run(y, feed_dict={dropout: 0.5}))

----> 运行结果:  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.]]

转载于:https://www.cnblogs.com/lph-shares/p/9096489.html

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

  1. 模型训练过程中产生NAN的原因分析

    模型训练过程中产生NAN的原因分析 在模型的训练过程中发现,有时在经过多轮训练后loss会突然变为nan.loss变为nan也就使权重更新后的网络里的参数变为了nan,这样就使整个训练无法再进行下去了 ...

  2. R语言使用keras包实现包含多个全连接层的二分类预测模型:在模型训练过程中动态可视化每个epoch后的loss值以及accuray值

    R语言使用keras包实现包含多个全连接层的二分类预测模型:在模型训练过程中动态可视化每个epoch后的loss值以及accuray值 目录

  3. 解决模型训练过程中显存不释放,不断累加导致爆显存

    问题:在模型训练的过程中,自己手动加入了每隔2000轮测试一下模型在测试集上的效果,结果24G的显存每次到4000轮也就是测试两次就爆掉显存了,后来通过验证找到了问题,并且在测试代码段最后加入torc ...

  4. 【模型训练-loss】模型训练过程中train, test loss的关系及原因

    网上查找了一些资料,避免忘记了,做个笔记供以后参考 train loss 不断下降,test loss不断下降,说明网络仍在学习; train loss 不断下降,test loss趋于不变,说明网络 ...

  5. 【深度学习】Tensorboard可视化模型训练过程和Colab使用

    [深度学习]Tensorboard可视化模型训练过程和Colab使用 文章目录 1 概述 2 手撸代码实现 3 Colab使用3.1 详细步骤3.2 Demo 4 总结 1 概述 在利用TensorF ...

  6. 在训练过程中加入Dropout

    Dropout是在训练过程中,随机地忽略部分神经元--也就是说,在正向传播的过程中,这些被忽略的神经元对下游神经元的贡献效果暂时消失,在反向传播中,这些神经元也不会有任何权值的更新. Dropout的 ...

  7. 详解tf.nn.dropout

    tensoflow中有两个dropout函数容易混淆 tf.nn.dropout 中参数 keep_prob :每一个元素被保存下的概率. tf.layer.dropout 中参数 rate :每一个 ...

  8. tf.nn.dropout和tf.keras.layers.Dropout的区别(TensorFlow2.3)与实验

    这里写目录标题 场景:dropout和Dropout区别 问题描述: 结论: 深层次原因:dropout是底层API,Dropout是高层API 场景:dropout和Dropout区别 全网搜索tf ...

  9. 【TensorFlow】tf.nn.softmax_cross_entropy_with_logits中的“logits”到底是个什么意思?

    tf.nn.softmax_cross_entropy_with_logits中的"logits"到底是个什么意思?_玉来愈宏的随笔-CSDN博客 https://blog.csd ...

最新文章

  1. Ubuntu 上更新 Flash 插件
  2. Lombok — Java代码自动生成 开发利器
  3. MySQL技术内幕读书笔记(一)——Mysql体系结构和存储引擎
  4. java freemarker 分页_10小时入门java开发04 springboot+freemarker+bootstrap快速实现分页功能...
  5. 【转】ARM 之七 主流编译器(armcc、iar、gcc for arm、LLVM(clang))详细介绍
  6. 信息学奥赛一本通(1326:【例7.5】 取余运算(mod))
  7. 10kv配电网潮流 matlab,关于用matlab计算配电网三相潮流计算,请大家帮忙检验下!...
  8. jsonarray转化list对象_第8篇:Cython的面向对象--Python类 vs Cython扩展类
  9. 简单粗暴Tensorflow 2.0
  10. IOS contentOffset该如何理解
  11. 从 global.console 看 Node.js 中的作用域
  12. DevExpress 小结
  13. 华为交换机路由器登陆密码详细操作
  14. shader里的uv是什么
  15. 为什么使用 LinkedIn 进行联盟营销活动?
  16. 即将拉开序幕!武汉市人工智能领域技术成果征集内容、范围和相关要求
  17. ext2与ext3的区别
  18. ブランドは、同社とその製品、サービス
  19. django报错ERRORS:?: (admin.E402) ‘django.contrib.auth.context_processors.auth‘
  20. vue3+ts+ant-table横向表格数据实现对单元格过滤之后的数据进行标红

热门文章

  1. php.ini-dist和php.ini区别,php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)...
  2. oracle书写高质量sql,干货!SQL性能优化,书写高质量SQL语句
  3. scrapy 中爬取时被重定向_一篇文章教会你理解Scrapy网络爬虫框架的工作原理和数据采集过程...
  4. java nio.Buffer的属性变化
  5. php utf不执行,PHP和UTF-8-为什么邮件不起作用?
  6. oracle 无法弹出图形界面,Xshell 5 不能弹出GUI 图形界面问题
  7. mysql杨辉三角_实现杨辉三角
  8. 预付卡管理信息系统_校园寝室桶装水配送管理信息系统分析和设计
  9. 关于python的全局变量和局部变量、以下描述错误的是_Python:全局变量与局部变量的问题...
  10. GCN(一)数据集介绍