nn.Dropout含义和作用

本文介绍了Dropout技术,一种用于防止神经网络过拟合的正则化策略,通过在训练过程中随机关闭部分神经元以提高模型泛化能力。它通常在全连接层后使用,且在测试阶段不可用。
摘要由CSDN通过智能技术生成

Dropout字面意思就是“丢掉”,是为了防止神经网络出现过拟合,让隐藏层的节点在每次迭代时(包括正向和反向传播)有一定几率(keep-prob)失效。以提高模型的泛化能力,减少过拟合。

Dropout属于一种正则化技术。Dropout的probability,实践中最常用的是0.5(或0.1,0.05)

nn.Dropout(p = 0.3)  #表示每个神经元有30%的可能性不被激活

Dropout一般用在全连接神经网络映射层之后,如代码的nn.Linear(20, 30)之后,防止过拟合,提高模型返回能力,由于卷积层参数较少,很少有放在卷积层后面的情况,卷积层一般使用batch norm。

Dropout不能用于测试集,只能用于训练集

import torch
from torch import nn
 
my_dropout = nn.Dropout(p=0.3)

input = torch.randn(4, 4)
print(input)

output = my_dropout(input)
print(output)


输出:
tensor([[-1.3763,  0.4258, -1.1728,  0.1388],
        [-1.0472,  0.4615, -0.5010,  0.0132],
        [ 1.3106,  0.2946,  0.0626, -0.1921],
        [ 0.0733,  0.1027, -1.8069,  0.3852]])

tensor([[-0.0000,  0.6083, -0.0000,  0.0000],
        [-1.4959,  0.6593, -0.0000,  0.0000],
        [ 1.8723,  0.4209,  0.0000, -0.0000],
        [ 0.0000,  0.1466, -2.5812,  0.5502]])

可以看到,output中有些值已经被随机置

而没有置零的也是除以了0.7,比如第一行第二列的0.4258,0.4258/0.7=0.6083

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值