Pytorch nn.Dropout的用法示例详解

 更新时间:2023年04月06日 11:17:47   作者:马里亚纳Mariana  
这篇文章主要介绍了Pytorch nn.Dropout的用法,本文通过示例代码介绍的非常详细,文中补充介绍了torch.nn.dropout和torch.nn.dropout2d的区别,需要的朋友可以参考下

1.nn.Dropout用法一

一句话总结:Dropout的是为了防止过拟合而设置

详解部分:
1.Dropout是为了防止过拟合而设置的
2.Dropout顾名思义有丢掉的意思
3.nn.Dropout(p = 0.3) # 表示每个神经元有0.3的可能性不被激活
4.Dropout只能用在训练部分而不能用在测试部分
5.Dropout一般用在全连接神经网络映射层之后,如代码的nn.Linear(20, 30)之后

在这里插入图片描述

代码部分:

class Dropout(nn.Module):
	def __init__(self):
		super(Dropout, self).__init__()
		self.linear = nn.Linear(20, 40)
		self.dropout = nn.Dropout(p = 0.3) # p=0.3表示下图(a)中的神经元有p = 0.3的概率不被激活

	def forward(self, inputs):
		out = self.linear(inputs)
		out = self.dropout(out)
		return out

net = Dropout()
# Dropout只能用在train而不能用在test	

2.nn.Dropout用法二

以代码为例

import torch
import torch.nn as nn
a = torch.randn(4, 4)
print(a)
"""
tensor([[ 1.2615, -0.6423, -0.4142,  1.2982],
        [ 0.2615,  1.3260, -1.1333, -1.6835],
        [ 0.0370, -1.0904,  0.5964, -0.1530],
        [ 1.1799, -0.3718,  1.7287, -1.5651]])
"""
dropout = nn.Dropout()
b = dropout(a)
print(b)
"""
tensor([[ 2.5230, -0.0000, -0.0000,  2.5964],
        [ 0.0000,  0.0000, -0.0000, -0.0000],
        [ 0.0000, -0.0000,  1.1928, -0.3060],
        [ 0.0000, -0.7436,  0.0000, -3.1303]])
"""

由以上代码可知Dropout还可以将部分tensor中的值置为0

补充:torch.nn.dropout和torch.nn.dropout2d的区别

import torch
import torch.nn as nn
import torch.autograd as autograd

m = nn.Dropout(p=0.5)
n = nn.Dropout2d(p=0.5)
input = autograd.Variable(torch.randn(1, 2, 6, 3)) ## 对dim=1维进行随机置为0

print(m(input))
print('****************************************************')
print(n(input))

在这里插入图片描述

下面的都是错误解释和错误示范,没有删除的原因是留下来进行对比,希望不要犯这类错误

# -*- coding: utf-8 -*-
import torch
import torch.nn as nn
import torch.autograd as autograd

m = nn.Dropout(p=0.5)
n = nn.Dropout2d(p=0.5)
input = autograd.Variable(torch.randn(2, 6, 3)) ## 对dim=1维进行随机置为0

print(m(input))
print('****************************************************')
print(n(input))

结果是:

可以看到torch.nn.Dropout对所有元素中每个元素按照概率0.5更改为零, 绿色椭圆,
而torch.nn.Dropout2d是对每个通道按照概率0.5置为0, 红色方框内
注:我只是圈除了部分

到此这篇关于Pytorch nn.Dropout的用法的文章就介绍到这了,更多相关Pytorch nn.Dropout用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Linux添加Python path方法及修改环境变量的三种方法

    Linux添加Python path方法及修改环境变量的三种方法

    这篇文章主要介绍了Linux添加Python path方法及修改环境变量的三种方法,Linux 下设置环境变量有三种方法,一种用于当前终端,一种用于当前用户,一种用于所有用户,本文对每种方法给大家介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • 结束运行python的方法

    结束运行python的方法

    在本篇文章里小编给大家分享的是关于结束运行python的方法以及相关代码,有需要的朋友们跟着学习下。
    2020-06-06
  • Pandas中Series的属性,方法,常用操作使用案例

    Pandas中Series的属性,方法,常用操作使用案例

    这篇文章主要介绍了Pandas中Series的属性,方法,常用操作使用案例,文章通过包的引入展开主题,需要的朋友可以参考一下
    2022-07-07
  • Python2实现的LED大数字显示效果示例

    Python2实现的LED大数字显示效果示例

    这篇文章主要介绍了Python2实现的LED大数字显示效果,涉及Python的简单交互与列表相关使用技巧,需要的朋友可以参考下
    2017-09-09
  • Python编写一个图片批量添加文字水印工具(附代码)

    Python编写一个图片批量添加文字水印工具(附代码)

    在日常工作和自媒体运营中,我们经常需要给大量的图片添加水印以保护版权,本文将使用 Python 强大的 GUI 库 PyQt5 和图像处理库 Pillow (PIL),亲手打造一个免费、开源且功能强大的批量水印工具,有需要的可以了解下
    2025-12-12
  • python连接mysql数据库并读取数据的实现

    python连接mysql数据库并读取数据的实现

    这篇文章主要介绍了python连接mysql数据库并读取数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 使用Python三角函数公式计算三角形的夹角案例

    使用Python三角函数公式计算三角形的夹角案例

    这篇文章主要介绍了使用Python三角函数公式计算三角形的夹角案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Python 中将数字转换为字母的方法

    Python 中将数字转换为字母的方法

    本文详细介绍了在 Python 中将数字转换为字母的几种常用方法,我们介绍了使用 chr() 函数、string 模块和 ord() 函数等方法,并提供了示例代码帮助你理解和应用这些方法,感兴趣的朋友跟随小编一起看看吧
    2023-06-06
  • Python使用PIL将图片或GIF转为字符画的方法详解

    Python使用PIL将图片或GIF转为字符画的方法详解

    PIL是专为Python语言设计的图像处理库,它涵盖了广泛的图像处理功能,如图像的加载、保存、编辑,以及执行多样化的图像处理任务,本文给大家介绍了Python使用PIL将图片或GIF转为字符画的方法,需要的朋友可以参考下
    2025-03-03
  • Python利用Selenium实现弹出框的处理

    Python利用Selenium实现弹出框的处理

    经常出现在网页上的基于JavaScript实现的弹出框有三种,分别是 alert、confirm、prompt 。本文主要是学习如何利用selenium处理这三种弹出框,感兴趣的可以了解一下
    2022-06-06

最新评论