浅谈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处理中文编码和判断编码示例
Feb 26 Python
Python实现合并字典的方法
Jul 07 Python
Python简单实现socket信息发送与监听功能示例
Jan 03 Python
pip matplotlib报错equired packages can not be built解决
Jan 06 Python
python基于itchat模块实现微信防撤回
Apr 29 Python
python自动化实现登录获取图片验证码功能
Nov 20 Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
Dec 03 Python
Python3 hashlib密码散列算法原理详解
Mar 30 Python
pandas数据处理之绘图的实现
Jun 15 Python
详解Python小数据池和代码块缓存机制
Apr 07 Python
忆童年!用Python实现愤怒的小鸟游戏
Jun 07 Python
python机器学习Github已达8.9Kstars模型解释器LIME
Nov 23 Python
让文件路径提取变得更简单的Python Path库
Pytorch中的数据集划分&正则化方法
Pytorch 如何实现常用正则化
PyTorch 实现L2正则化以及Dropout的操作
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
pytorch 实现在测试的时候启用dropout
使用Python脚本对GiteePages进行一键部署的使用说明
You might like
全国FM电台频率大全 - 3 河北省
2020/03/11 无线电
利用php绘制饼状图的实现代码
2013/06/07 PHP
php分页函数完整实例代码
2014/09/22 PHP
php用wangeditor3实现图片上传功能
2019/08/22 PHP
常用js脚本
2006/12/03 Javascript
InnerHtml和InnerText的区别分析
2009/03/13 Javascript
JS.elementGetStyle(element, style)应用示例
2013/09/24 Javascript
JavaScript实现关键字高亮功能
2014/11/12 Javascript
jQuery实现本地预览上传图片功能
2016/01/08 Javascript
Node.js  事件循环详解及实例
2017/08/06 Javascript
vue axios 表单提交上传图片的实例
2018/03/16 Javascript
[01:00:25]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS Liquid
2018/03/31 DOTA
Python自动调用IE打开某个网站的方法
2015/06/03 Python
python使用SMTP发送qq或sina邮件
2017/10/21 Python
Python分布式进程中你会遇到的问题解析
2019/05/28 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
2019/06/18 Python
opencv导入头文件时报错#include的解决方法
2019/07/31 Python
Python安装依赖(包)模块方法详解
2020/02/14 Python
python实现简单井字棋游戏
2020/03/04 Python
Python HTMLTestRunner库安装过程解析
2020/05/25 Python
纯CSS3代码实现switch滑动开关按钮效果
2016/08/30 HTML / CSS
Html5实现iPhone开机界面示例代码
2013/06/30 HTML / CSS
HTML5 3D旋转相册的实现示例
2019/12/03 HTML / CSS
自我鉴定四大框架
2014/01/17 职场文书
数控技术专业毕业自荐书范文
2014/02/05 职场文书
护士优质服务演讲稿
2014/08/26 职场文书
2014年终个人工作总结
2014/11/07 职场文书
离婚被告代理词
2015/05/23 职场文书
国博复兴之路观后感
2015/06/02 职场文书
总结会主持词
2015/07/02 职场文书
图解排序算法之希尔排序Java实现
2021/06/26 Java/Android
python基础之错误和异常处理
2021/10/24 Python
Redis 持久化 RDB 与 AOF的执行过程
2021/11/07 Redis
手写Spirit防抖函数underscore和节流函数lodash
2022/03/22 Javascript
vue整合百度地图显示指定地点信息
2022/04/06 Vue.js
Win Server2016远程桌面如何允许多用户同时登录
2022/06/10 Servers