2021-11-06

Dropout解析

Dropout的一般形式如下所示:

Dropout(p)

其中p是一个0-1的小数,表示在训练时,使用伯努利分布的样本,以概率 p 随机置零输入张量的一些元素。每个信道在每次前向调用时都将被独立地置零。

此外,对于那些没有被置0的参数,同时乘以 \frac{1}{1-p} 进行放大。

注意: 只有在model.train()模式下,Dropout才会起作用, 而在model.eval()模式下,Dropout不进行处理。

In [5]: x=torch.rand(2,5)
In [6]: x
Out[6]:
tensor([[0.9188, 0.6057, 0.4477, 0.6748, 0.0624],
        [0.7781, 0.7598, 0.8580, 0.5582, 0.8246]])
In [7]: model = nn.Dropout(0.5)
In [8]: model.train()
Out[8]: Dropout(p=0.5, inplace=False)
In [9]: model(x)
Out[9]:
tensor([[0.0000, 0.0000, 0.8953, 1.3497, 0.0000],
        [0.0000, 1.5197, 0.0000, 1.1163, 1.6493]])
In [10]: model.eval()
Out[10]: Dropout(p=0.5, inplace=False)
In [11]: model(x)
Out[11]:
tensor([[0.9188, 0.6057, 0.4477, 0.6748, 0.0624],
        [0.7781, 0.7598, 0.8580, 0.5582, 0.8246]])
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容