torch.nn.Dropout() 是 PyTorch 中对 Dropout 层的其中一个实现,该函数底层调用 torch.nn.functional.dropout();
1、torch.nn.Dropout(p=0.5, inplace=False)
其作用是,在 training 模式下,基于伯努利分布抽样,以概率 p 对张量 input 的值随机置0;
training 模式中,对输出以 1/(1-p) 进行 scaling,而 evaluation 模式中,使用恒等函数;
p:默认 0.5,张量元素被置0的概率;
inplace:默认 False,是否原地执行;
self.dropout_layer = torch.nn.Dropout()
2、torch.nn.functional.dropout(input, p=0.5, training=True, inplace=False)
该方法是 Dropout() 层的底层实现
input:输入张量
p:默认 0.5,张量元素被置0的概率;
training:默认 True,为 Ture 时执行dropout,为 False 时不执行,与模块模式设置相关;
inplace:默认 False,是否原地执行;
x = torch.nn.functional.dropout(x)