浅谈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的发展史
Sep 26 Python
Windows上配置Emacs来开发Python及用Python扩展Emacs
Nov 20 Python
python 写入csv乱码问题解决方法
Oct 23 Python
Python实现对字符串的加密解密方法示例
Apr 29 Python
利用python将json数据转换为csv格式的方法
Mar 22 Python
python基于socket进行端口转发实现后门隐藏的示例
Jul 25 Python
Python图片的横坐标汉字实例
Dec 04 Python
python使用openCV遍历文件夹里所有视频文件并保存成图片
Jan 14 Python
使用Python操作ArangoDB的方法步骤
Feb 02 Python
python 中的命名空间,你真的了解吗?
Aug 19 Python
Python运算符+与+=的方法实例
Feb 18 Python
Python利用FlashText算法实现替换字符串
Mar 31 Python
让文件路径提取变得更简单的Python Path库
Pytorch中的数据集划分&正则化方法
Pytorch 如何实现常用正则化
PyTorch 实现L2正则化以及Dropout的操作
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
pytorch 实现在测试的时候启用dropout
使用Python脚本对GiteePages进行一键部署的使用说明
You might like
基于laravel-admin 后台 列表标签背景的使用方法
2019/10/03 PHP
JavaScript 格式字符串的应用
2010/03/29 Javascript
基于jQuery+Cookie实现的防止刷新的在线考试倒计时
2015/06/19 Javascript
jQuery实现连续动画效果实例分析
2015/10/09 Javascript
js文字横向滚动特效
2015/11/11 Javascript
理解jquery事件冒泡
2016/01/03 Javascript
JavaScript Promise 用法
2016/06/14 Javascript
浅谈JS函数定义方式的区别
2016/10/30 Javascript
原生js实现水平方向无缝滚动
2017/01/10 Javascript
js获取浏览器和屏幕的各种宽度高度
2017/02/22 Javascript
jQuery实现百度登录框的动态切换效果
2017/04/21 jQuery
JavaScript之RegExp_动力节点Java学院整理
2017/06/29 Javascript
Nodejs之TCP服务端与客户端聊天程序详解
2017/07/07 NodeJs
JS实现上传图片的三种方法并实现预览图片功能
2017/07/14 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
2017/10/11 Javascript
Vuex 进阶之模块化组织详解
2018/01/12 Javascript
VUE 实现滚动监听 导航栏置顶的方法
2018/09/11 Javascript
JavaScript+HTML5 canvas实现放大镜效果完整示例
2019/05/15 Javascript
javascript实现的字符串转换成数组操作示例
2019/06/13 Javascript
微信小程序实现吸顶特效
2020/01/08 Javascript
如何在 Vue 表单中处理图片
2021/01/26 Vue.js
Python设计模式之抽象工厂模式
2016/08/25 Python
Python使用numpy模块创建数组操作示例
2018/06/20 Python
Python面向对象思想与应用入门教程【类与对象】
2019/04/12 Python
Python 保持登录状态进行接口测试的方法示例
2019/08/06 Python
python利用opencv实现SIFT特征提取与匹配
2020/03/05 Python
台湾线上百货零售购物平台:friDay购物
2017/08/18 全球购物
Richards网上商店:当代时尚,遍布巴西
2019/11/03 全球购物
中专毕业生自我鉴定范文
2013/11/09 职场文书
九年级体育教学反思
2014/01/23 职场文书
银行内勤岗位职责
2014/04/09 职场文书
护士长竞聘演讲稿
2014/04/30 职场文书
庆祝教师节演讲稿
2014/09/03 职场文书
2014年监理个人工作总结
2014/12/11 职场文书
质量承诺书格式范文
2015/04/28 职场文书
党内外群众意见范文
2015/06/02 职场文书