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中变量的拷贝和作用域问题
May 05 Python
python使用nntp读取新闻组内容的方法
May 08 Python
Python import用法以及与from...import的区别
May 28 Python
Python利用带权重随机数解决抽奖和游戏爆装备问题
Jun 16 Python
Python实现抢购IPhone手机
Feb 07 Python
Pandas之drop_duplicates:去除重复项方法
Apr 18 Python
python实现搜索文本文件内容脚本
Jun 22 Python
编写多线程Python服务器 最适合基础
Sep 14 Python
pyqt5与matplotlib的完美结合实例
Jun 21 Python
浅析PyTorch中nn.Module的使用
Aug 18 Python
python利用opencv实现SIFT特征提取与匹配
Mar 05 Python
详解python datetime模块
Aug 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安全配置详细说明
2011/09/26 PHP
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
2014/07/22 PHP
PHP解析目录路径的3个函数总结
2014/11/18 PHP
PHP循环遍历数组的3种方法list()、each()和while总结
2014/11/19 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
2015/03/23 PHP
php正则preg_replace_callback函数用法实例
2015/06/01 PHP
php实现Session存储到Redis
2015/11/11 PHP
php curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法
2015/11/30 PHP
PHP中for循环与foreach的区别
2017/03/06 PHP
让AJAX不依赖后端接口实现方案
2012/12/03 Javascript
jQuery往textarea中光标所在位置插入文本的方法
2015/06/26 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
easyui messager alert 三秒后自动关闭提示的实例
2016/11/07 Javascript
详解webpack3如何正确引用并使用jQuery库
2017/08/26 jQuery
微信小程序中setInterval的使用方法
2017/09/29 Javascript
详解JavaScript的this指向和绑定
2020/09/08 Javascript
vue 二维码长按保存和复制内容操作
2020/09/22 Javascript
OpenLayers3实现图层控件功能
2020/09/25 Javascript
一篇文章让你搞懂JavaScript 原型和原型链
2020/11/23 Javascript
python 添加用户设置密码并发邮件给root用户
2016/07/25 Python
Python简单实现自动删除目录下空文件夹的方法
2017/08/29 Python
对Tensorflow中的矩阵运算函数详解
2018/07/27 Python
Python运维开发之psutil库的使用详解
2018/10/18 Python
Python检查ping终端的方法
2019/01/26 Python
python+mysql实现学生信息查询系统
2019/02/21 Python
Html5实现首页动态视频背景的示例代码
2019/09/25 HTML / CSS
linux系统都有哪些运行级别
2012/04/15 面试题
如何防止同一个帐户被多人同时登录
2013/08/01 面试题
环境科学专业个人求职的自我评价
2013/11/28 职场文书
项目合作协议书范本
2014/04/16 职场文书
《天安门广场》教学反思
2014/04/23 职场文书
业务内勤岗位职责
2014/04/30 职场文书
公务员四风问题对照检查材料整改措施
2014/09/26 职场文书
党员违纪检讨书怎么写
2014/11/01 职场文书
清洁工岗位职责
2015/02/13 职场文书
端午节寄语2015
2015/03/23 职场文书