浅谈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中urllib+urllib2+cookielib模块编写爬虫实战
Jan 20 Python
使用Python对Excel进行读写操作
Mar 30 Python
python版本坑:md5例子(python2与python3中md5区别)
Jun 20 Python
python opencv 图像尺寸变换方法
Apr 02 Python
浅谈Pandas中map, applymap and apply的区别
Apr 10 Python
django将图片上传数据库后在前端显式的方法
May 25 Python
Python Web编程之WSGI协议简介
Jul 18 Python
在numpy矩阵中令小于0的元素改为0的实例
Jan 26 Python
使用PyQt4 设置TextEdit背景的方法
Jun 14 Python
Python OpenCV调用摄像头检测人脸并截图
Aug 20 Python
Django实现将views.py中的数据传递到前端html页面,并展示
Mar 16 Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
Jun 01 Python
让文件路径提取变得更简单的Python Path库
Pytorch中的数据集划分&正则化方法
Pytorch 如何实现常用正则化
PyTorch 实现L2正则化以及Dropout的操作
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
pytorch 实现在测试的时候启用dropout
使用Python脚本对GiteePages进行一键部署的使用说明
You might like
PHP三元运算的2种写法代码实例
2014/05/12 PHP
如何在旧的PHP系统中使用PHP 5.3之后的库
2015/12/02 PHP
Zend Framework实现留言本分页功能(附demo源码下载)
2016/03/22 PHP
thinkphp的dump函数无输出实例代码
2016/11/15 PHP
PHP编程 SSO详细介绍及简单实例
2017/01/13 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
通过Mootools 1.2来操纵HTML DOM元素
2009/09/15 Javascript
jQuery 使用手册(一)
2009/09/23 Javascript
JavaScript中神奇的call()方法
2015/03/12 Javascript
jquery实现简单合拢与展开网页面板的方法
2015/09/01 Javascript
JavaScript实现带缓冲效果的随屏滚动漂浮广告代码
2015/11/06 Javascript
详解jQuery UI库中文本输入自动补全功能的用法
2016/04/23 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
2017/03/24 jQuery
纯JS实现简单的日历
2017/06/26 Javascript
EasyUI的TreeGrid的过滤功能的解决思路
2017/08/08 Javascript
AngularJS实现动态切换样式的方法分析
2018/06/26 Javascript
clipboard在vue中的使用的方法示例
2018/10/19 Javascript
实例分析Array.from(arr)与[...arr]到底有何不同
2019/04/09 Javascript
解决vue字符串换行问题(绝对管用)
2020/08/06 Javascript
Python 随机生成中文验证码的实例代码
2013/03/20 Python
python编程开发之textwrap文本样式处理技巧
2015/11/13 Python
Python 多线程抓取图片效率对比
2016/02/27 Python
TensorFlow实现创建分类器
2018/02/06 Python
python自动发邮件库yagmail的示例代码
2018/02/23 Python
详解Django CAS 解决方案
2019/10/30 Python
HTML5 localStorage使用总结
2017/02/22 HTML / CSS
Ibatis如何调用存储过程
2015/05/15 面试题
院药学专业个人求职信
2013/09/21 职场文书
大专生简历的自我评价
2013/11/26 职场文书
银行求职信
2014/05/31 职场文书
苏州园林导游词
2015/02/03 职场文书
遗失说明具结保证书
2015/02/26 职场文书
餐厅收银员岗位职责
2015/04/07 职场文书
周恩来的四个昼夜观后感
2015/06/03 职场文书
高二化学教学反思
2016/02/22 职场文书
css背景和边框标签实例详解
2021/05/21 HTML / CSS