浅谈pytorch中的dropout的概率p


Posted in Python onMay 27, 2021

最近需要训练一个模型,在优化模型时用了dropout函数,为了减少过拟合。

训练的时候用dropout,测试的时候不用dropout。刚开始以为p是保留神经元的比率,训练设置0.5,测试设置1,loss根本没减小过,全设置成1也是一样的效果,后来就考虑到是不是p设置错了。

上网一搜,果然是的!!!p的含义理解错了!不是保留的,而是不保留的!

具体的代码为:

x2 = F.dropout(x1, p)

x1是上一层网络的输出,p是需要删除的神经元的比例。

当p=0时,保留全部神经元更新。当p=1时,神经元输出的值都为0。

补充:Pytorch--Dropout笔记

dropout常常用于抑制过拟合,pytorch也提供了很方便的函数。但是经常不知道dropout的参数p是什么意思。

在TensorFlow中p叫做keep_prob,就一直以为pytorch中的p应该就是保留节点数的比例,但是实验结果发现反了,实际上表示的是不保留节点数的比例。

看下面的例子:

a = torch.randn(10,1)
>>> tensor([[ 0.0684],
        [-0.2395],
        [ 0.0785],
        [-0.3815],
        [-0.6080],
        [-0.1690],
        [ 1.0285],
        [ 1.1213],
        [ 0.5261],
        [ 1.1664]])

p=0.5

torch.nn.Dropout(0.5)(a)
>>> tensor([[ 0.0000],  
        [-0.0000],  
        [ 0.0000],  
        [-0.7631],  
        [-0.0000],  
        [-0.0000],  
        [ 0.0000],  
        [ 0.0000],  
        [ 1.0521],  
        [ 2.3328]])

p=0

torch.nn.Dropout(0)(a)
>>> tensor([[ 0.0684],
        [-0.2395],
        [ 0.0785],
        [-0.3815],
        [-0.6080],
        [-0.1690],
        [ 1.0285],
        [ 1.1213],
        [ 0.5261],
        [ 1.1664]])

p=1

torch.nn.Dropout(0)(a)
>>> tensor([[0.],  
        [-0.], 
        [0.],  
        [-0.], 
        [-0.], 
        [-0.], 
        [0.],  
        [0.],  
        [0.],  
        [0.]])

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
总结Python编程中函数的使用要点
Mar 20 Python
Python实现ssh批量登录并执行命令
Oct 25 Python
获取Django项目的全部url方法详解
Oct 26 Python
python+matplotlib实现动态绘制图片实例代码(交互式绘图)
Jan 20 Python
python+selenium打印当前页面的titl和url方法
Jun 22 Python
Selenium鼠标与键盘事件常用操作方法示例
Aug 13 Python
python实现公司年会抽奖程序
Jan 22 Python
详解pandas删除缺失数据(pd.dropna()方法)
Jun 25 Python
python使用pyecharts库画地图数据可视化的实现
Mar 25 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
Mar 30 Python
在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程
Aug 07 Python
Python如何实现Paramiko的二次封装
Jan 30 Python
让文件路径提取变得更简单的Python Path库
Pytorch中的数据集划分&正则化方法
Pytorch 如何实现常用正则化
PyTorch 实现L2正则化以及Dropout的操作
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
pytorch 实现在测试的时候启用dropout
使用Python脚本对GiteePages进行一键部署的使用说明
You might like
自己前几天写的无限分类类
2007/02/14 PHP
6种php上传图片重命名的方法实例
2013/11/04 PHP
php 魔术方法详解
2014/11/11 PHP
thinkphp的URL路由规则与配置实例
2014/11/26 PHP
php模拟post提交数据的方法
2015/02/12 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
2015/04/15 PHP
详解php中空字符串和0之间的关系
2016/10/23 PHP
php自定义时间转换函数示例
2016/12/07 PHP
PHP实现的文件操作类及文件下载功能示例
2016/12/24 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
学习ExtJS accordion布局
2009/10/08 Javascript
基于jQuery的自动完成插件
2011/02/03 Javascript
Jquery上传插件 uploadify v3.1使用说明
2012/06/18 Javascript
CSS(js)限制页面显示的文本字符长度
2012/12/27 Javascript
JavaScript中的变量作用域介绍
2014/12/31 Javascript
js中 javascript:void(0) 用法详解
2015/08/11 Javascript
Bootstrap学习系列之使用 Bootstrap Typeahead 组件实现百度下拉效果
2016/07/07 Javascript
Bootstrap面板学习使用
2017/02/09 Javascript
在node中如何使用 ES6
2017/04/22 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
2018/08/31 Javascript
Angular(5.2->6.1)升级小结
2018/12/27 Javascript
个人小程序接入支付解决方案
2019/05/23 Javascript
解决vuecli3中img src 的引入问题
2020/08/04 Javascript
jQuery实现二级导航菜单的示例
2020/09/30 jQuery
详解Python 调用C# dll库最简方法
2019/06/20 Python
基于Django框架的权限组件rbac实例讲解
2019/08/31 Python
使用OpenCV实现人脸图像卡通化的示例代码
2021/01/15 Python
博柏利美国官方网站:Burberry美国
2020/11/19 全球购物
争先创优公开承诺书
2014/08/30 职场文书
党性观念心得体会
2014/09/03 职场文书
语文复习计划
2015/01/19 职场文书
2015年信息宣传工作总结
2015/05/26 职场文书
2015选调生工作总结
2015/07/24 职场文书
小学新课改心得体会
2016/01/22 职场文书
课文《燕子》教学反思
2016/02/17 职场文书
《天使的翅膀》读后感3篇
2019/12/20 职场文书