Pytorch Dropout Layers漏失层

nn.Dropout

During training, randomly zeroes some of the elements of the input tensor with probability p.

在训练期间,以概率 p 将输入张量的一些元素随机归零。
 

Dropout Layers漏失层
nn.Dropoutnn.辍学

During training, randomly zeroes some of the elements of the input tensor with probability p.
在训练期间,以概率 p 将输入张量的一些元素随机归零。

nn.Dropout1dnn.Dropout1d

Randomly zero out entire channels.
随机将整个通道归零。

nn.Dropout2dnn.Dropout2d

Randomly zero out entire channels.
随机将整个通道归零。

nn.Dropout3dnn.Dropout3d

Randomly zero out entire channels.
随机将整个通道归零。

nn.AlphaDropoutnn.AlphaDropout

Applies Alpha Dropout over the input.
对输入应用 Alpha Dropout。

nn.FeatureAlphaDropout
nn.FeatureAlphaDropout

Randomly masks out entire channels.
随机屏蔽整个通道。

Parameters p (float, optional) – probability of an element to be zero-ed. inplace (bool, optional) – If set to True, will do this operation in-place

参数 p(float,可选) - 元素被清零的概率。 inplace(布尔值,可选) - 如果设置为True,将就地执行此操作


 

Shape:

  • Input: (𝑁,𝐶,𝐻,𝑊)(N,C,H,W) or (𝑁,𝐶,𝐿)(N,C,L).

  • Output: (𝑁,𝐶,𝐻,𝑊)(N,C,H,W) or (𝑁,𝐶,𝐿)(N,C,L) (same shape as input).
     

    Examples:

     m = nn.Dropout2d(p=0.2)
     input = torch.randn(20, 16, 32, 32)
     output = m(input)

import torchvision.datasets
from torch import nn
import torch
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter

dataset= torchvision.datasets.CIFAR10("./data",train=True,transform=torchvision.transforms.ToTensor(),download=True)

dataloader=DataLoader(dataset,batch_size=64)

writer=SummaryWriter("./logs_Dropout",)
class Aoxiang(nn.Module):
    def __init__(self):
        super(Aoxiang, self).__init__()
        self.Dropout=nn.Dropout2d(p=0.2)

    def forward(self,x):
        x=self.Dropout(x)
        return x

aoxiang=Aoxiang()
step=1
for data in dataloader:
    imgs,target=data
    input=imgs
    print(input)
    writer.add_images("input",input,step)
    output=aoxiang.forward(imgs)
    # output=torch.reshape(output,(20,16,32,32))
    print(output)
    writer.add_images("output", output, step)
    step=step+1

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyTorch 中,Dropout Layers 是一种常用的正则化技术,可以用来防止神经网络过拟合。Dropout Layers 会以一定的概率将输入数据中的部分元素置为 0,这样可以随机地忽略一些神经元,从而减少了神经网络中神经元之间的依赖关系,使得网络更加健壮,提高了其泛化能力。 在 PyTorch 中,我们可以通过 `nn.Dropout()` 类来创建一个 Dropout Layer。该类的主要参数是 `p`,表示将输入数据中的元素以一定的概率 p 置为 0。例如,下面的代码创建了一个 Dropout Layer,它会以 50% 的概率将输入数据中的元素置为 0: ``` import torch.nn as nn dropout = nn.Dropout(p=0.5) ``` 使用 Dropout Layer 时,我们只需要将其作为神经网络的一个即可。例如,下面的代码定义了一个包含两个全连接和一个 Dropout Layer 的神经网络: ``` import torch.nn as nn class MyNet(nn.Module): def __init__(self): super(MyNet, self).__init__() self.fc1 = nn.Linear(100, 200) self.dropout = nn.Dropout(p=0.5) self.fc2 = nn.Linear(200, 10) def forward(self, x): x = self.fc1(x) x = self.dropout(x) x = self.fc2(x) return x ``` 在上面的代码中,我们通过 `nn.Linear()` 创建了两个全连接,并使用 `nn.Dropout()` 创建了一个 Dropout Layer。在 forward 函数中,我们首先将输入数据 x 传递给第一个全连接 self.fc1,然后将其结果传递给 Dropout Layer self.dropout,最后再传递给第二个全连接 self.fc2。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值