Advertisement

nn.Dropout用于随机丢弃神经元的方法

阅读量:

前言:

在pytorch以及tensorflow这两个深度学习框架中,均提供了nn.dropout这一功能模块,其具体应用方式存在一定的异同之处,以下将对相关内容进行详细说明。

一、torch.nn.dropout

复制代码

在模型训练阶段,按照伯努利分布以概率p随机对输入数据中的部分元素进行置零操作,且每个通道在每次前向传播时均独立执行该过程。

此策略已被证实是一种行之有效的正则化手段,能够避免特征检测器之间的协同适应现象,相关论述可参考文献 "Improving neural networks by preventing co-adaptation of feature detectors"。

与此同时,在训练过程中输出的尺度比例为:*math:frac{1}{1-p}【a1(1-p)=a

1.1对于一维度向量的dropout

复制代码
 import torch

    
 a = torch.randn(10)
    
 p = 0.3 # probability of an element to be zeroed
    
 Dropout = torch.nn.Dropout(p)
    
 a1 = Dropout(a)
    
 print(a)
    
 print(a1)
    
    

全部评论 (0)

还没有任何评论哟~