pytorch 中nn.Dropout的使用说明


Posted in Python onMay 20, 2021

看代码吧~

Class USeDropout(nn.Module):
 
    def __init__(self): 
        super(DropoutFC, self).__init__() 
        self.fc = nn.Linear(100,20) 
        self.dropout = nn.Dropout(p=0.5)  
    def forward(self, input): 
        out = self.fc(input) 
        out = self.dropout(out) 
        return out 
Net = USeDropout() 
Net.train()

示例代码如上,直接调用nn.Dropout即可,但是注意在调用时要将模型参数传入。

补充:Pytorch的nn.Dropout运行稳定性测试

结论:

Pytorch的nn.Dropout在每次被调用时dropout掉的参数都不一样,即使是同一次forward也不同。

如果模型里多次使用的dropout的dropout rate大小相同,用同一个dropout层即可。

如代码所示:

import torch
import torch.nn as nn
class MyModel(nn.Module):
    def __init__(self):
        super(MyModel, self).__init__()
        self.dropout_1 = nn.Dropout(0.5)
        self.dropout_2 = nn.Dropout(0.5)
    def forward(self, input):
        # print(input)
        drop_1 = self.dropout_1(input)
        print(drop_1)
        drop_1 = self.dropout_1(input)
        print(drop_1)
        drop_2 = self.dropout_2(input)
        print(drop_2)
if __name__ == '__main__':
    i = torch.rand((5, 5))
    m = MyModel()
    m.forward(i)

结果如下:

*\python.exe */model.py
tensor([[0.0000, 0.0914, 0.0000, 1.4095, 0.0000],
[0.0000, 0.0000, 0.1726, 1.3800, 0.0000],
[1.7651, 0.0000, 0.0000, 0.9421, 1.5603],
[1.0510, 1.7290, 0.0000, 0.0000, 0.8565],
[0.0000, 0.0000, 0.0000, 0.0000, 0.0000]])
tensor([[0.0000, 0.0000, 0.4722, 1.4095, 0.0000],
[0.0416, 0.0000, 0.1726, 1.3800, 1.3193],
[0.0000, 0.3401, 0.6550, 0.0000, 0.0000],
[1.0510, 1.7290, 1.5515, 0.0000, 0.0000],
[0.6388, 0.0000, 0.0000, 1.0122, 0.0000]])
tensor([[0.0000, 0.0000, 0.4722, 0.0000, 1.2689],
[0.0416, 0.0000, 0.0000, 1.3800, 0.0000],
[0.0000, 0.0000, 0.6550, 0.0000, 1.5603],
[0.0000, 0.0000, 1.5515, 1.4596, 0.0000],
[0.0000, 0.0000, 0.0000, 0.0000, 0.0000]])

Process finished with exit code 0

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

Python 相关文章推荐
Python实现模拟时钟代码推荐
Nov 08 Python
Python实现拷贝多个文件到同一目录的方法
Sep 19 Python
python 实现一个贴吧图片爬虫的示例
Oct 12 Python
对pandas进行数据预处理的实例讲解
Apr 20 Python
python判断一个数是否能被另一个整数整除的实例
Dec 12 Python
对pandas的算术运算和数据对齐实例详解
Dec 22 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
Jun 25 Python
给大家整理了19个pythonic的编程习惯(小结)
Sep 25 Python
matlab、python中矩阵的互相导入导出方式
Jun 01 Python
在Python中字典按值排序的实现方法
Nov 12 Python
Python OpenCV 图像平移的实现示例
Jun 04 Python
Pygame Time时间控制的具体使用详解
Nov 17 Python
Python 线程池模块之多线程操作代码
May 20 #Python
pytorch中[..., 0]的用法说明
May 20 #Python
浅谈pytorch中stack和cat的及to_tensor的坑
May 20 #Python
pytorch实现手写数字图片识别
解决python3安装pandas出错的问题
May 20 #Python
python 如何在list中找Topk的数值和索引
May 20 #Python
Requests什么的通通爬不了的Python超强反爬虫方案!
You might like
使用php shell命令合并图片的代码
2011/06/23 PHP
PHP 透明水印生成代码
2012/08/27 PHP
wamp下修改mysql访问密码的解决方法
2013/05/07 PHP
探讨:如何编写PHP扩展
2013/06/13 PHP
PHP使用mysqldump命令导出数据库
2015/04/14 PHP
php实现的简单多进程服务器类完整示例
2020/02/01 PHP
JS解密入门 最终变量劫持
2008/06/25 Javascript
动态加载图片路径 保持JavaScript控件的相对独立性
2010/09/06 Javascript
javascript中创建对象的三种常用方法
2010/12/30 Javascript
jquery拖拽效果完整实例(附demo源码下载)
2016/01/14 Javascript
JavaScript小技巧整理篇(非常全)
2016/01/26 Javascript
微信小程序 wx.request(OBJECT)发起请求详解
2016/10/13 Javascript
基于jQuery的checkbox全选问题分析
2016/11/18 Javascript
jQuery插件HighCharts实现的2D对数饼图效果示例【附demo源码下载】
2017/03/09 Javascript
JavaScript数组去重的多种方法(四种)
2017/09/19 Javascript
JS实现对json对象排序并删除id相同项功能示例
2018/04/18 Javascript
JS高阶函数原理与用法实例分析
2019/01/15 Javascript
详解在Angular4中使用ng2-baidu-map的方法
2019/06/19 Javascript
vue 强制组件重新渲染(重置)的两种方案
2019/10/29 Javascript
如何在Vue中抽离接口配置文件
2019/10/31 Javascript
layui写后台表格思路和赋值用法详解
2019/11/14 Javascript
Vue.js仿Select下拉框效果
2020/02/18 Javascript
JavaScript中的Proxy对象
2020/11/27 Javascript
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
Django的CVB实例详解
2020/02/10 Python
python 动态绘制爱心的示例
2020/09/27 Python
详解如何解决H5开发使用wx.hideMenuItems无效果不生效
2021/01/20 HTML / CSS
中国一家专注拼团的社交购物网站:拼多多
2018/06/13 全球购物
一套中级Java程序员笔试题
2015/01/14 面试题
个人求职简历中英文自我评价
2013/12/16 职场文书
母亲80寿诞答谢词
2014/01/16 职场文书
小学数学课题方案
2014/06/15 职场文书
李白经典诗之一:全文无一“月”字,却句句有月
2019/07/12 职场文书
golang 比较浮点数的大小方式
2021/05/02 Golang
Mysql数据库手动及定时备份步骤
2021/11/07 MySQL
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers