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)
torch.nn.Dropout是PyTorch中的一个模块,它在训练模式下按照给定的概率p随机将输入张量的元素置0,以此实现正则化防止过拟合。在评估模式下,它不执行dropout操作,而是直接传递输入。此功能的底层实现是torch.nn.functional.dropout,该函数允许用户控制是否原地修改输入以及是否在训练模式下应用dropout。

3400

被折叠的 条评论
为什么被折叠?



