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实现斐波那契递归函数的方法
Sep 08 Python
Python中字符编码简介、方法及使用建议
Jan 08 Python
在Python中操作时间之mktime()方法的使用教程
May 22 Python
Python 类与元类的深度挖掘 I【经验】
May 06 Python
Python实现模拟浏览器请求及会话保持操作示例
Jul 30 Python
python读取txt文件并取其某一列数据的示例
Feb 19 Python
Python换行与不换行的输出实例
Feb 19 Python
在python中求分布函数相关的包实例
Apr 15 Python
通过python调用adb命令对App进行性能测试方式
Apr 23 Python
Django设置Postgresql的操作
May 14 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
Jun 29 Python
python爬虫使用scrapy注意事项
Nov 23 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读取txt文件的内容并赋值给数组的代码
2011/11/03 PHP
asm.js使用示例代码
2013/11/28 Javascript
node.js中的path.normalize方法使用说明
2014/12/08 Javascript
jQuery插件实现大图全屏图片相册
2015/03/14 Javascript
jQuery()方法的第二个参数详解
2015/04/29 Javascript
浅谈jQuery构造函数分析
2015/05/11 Javascript
JS实现支持多选的遍历下拉列表代码
2015/08/20 Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
2015/11/01 Javascript
javascript实现获取浏览器版本、浏览器类型
2015/12/02 Javascript
基于JavaScript实现鼠标向下滑动加载div的代码
2016/08/31 Javascript
JS中如何实现复选框全选功能
2016/12/19 Javascript
Angular实现预加载延迟模块的示例
2017/10/12 Javascript
Vue实现PopupWindow组件详解
2018/04/28 Javascript
vue代理和跨域问题的解决
2018/07/18 Javascript
Vue-不允许嵌套式的渲染方法
2018/09/13 Javascript
4个顶级开源JavaScript图表库
2018/09/29 Javascript
webpack中如何使用雪碧图的示例代码
2018/11/11 Javascript
vue+element table表格实现动态列筛选的示例代码
2021/01/14 Vue.js
Python使用matplotlib绘制动画的方法
2015/05/20 Python
Python常用知识点汇总
2016/05/08 Python
django 实现电子支付功能的示例代码
2018/07/25 Python
Python实现图片转字符画的代码实例
2019/02/22 Python
Python 的字典(Dict)是如何存储的
2019/07/05 Python
Python小程序 控制鼠标循环点击代码实例
2019/10/08 Python
Python使用sys.exc_info()方法获取异常信息
2020/07/23 Python
美国知名眼镜网站:Target Optical
2020/04/04 全球购物
几个常见的消息中间件(MOM)
2014/01/08 面试题
中央空调节能方案
2014/06/15 职场文书
2015年度物流工作总结
2015/04/30 职场文书
边城读书笔记
2015/06/29 职场文书
再见,2019我们不负使命;你好,2020我们砥砺前行
2020/01/03 职场文书
python基于tkinter制作m3u8视频下载工具
2021/04/24 Python
Golang中interface{}转为数组的操作
2021/04/30 Golang
Pandas自定义选项option设置
2021/07/25 Python
梳理总结Python开发中需要摒弃的18个坏习惯
2022/01/22 Python
使用Mysql计算地址的经纬度距离和实时位置信息
2022/04/29 MySQL