自dropout操作被提出后,被各位大神们玩出了花样。具体有8种,本文首先介绍了8种Dropout方法,最后讲述基于dropout用4行代码实现DropBlock。核心原理就一句话:dropout会随机丢失像素点,但是对dropout的结果进行上采样后像素点将会变成像素块。基于上采样后的dropout结果,我们可以实现DropBlock。在本文实现了pytorch版与paddle版的DropBlock。
在本文主要讲述基于dropout实现DropBlock的实现,因为博主在浏览中发现大量实现DropBlock的代码都是从实现概率p到keep_ratio转换,然后在基于伯努利分布得到mask,代码较于生涩。因此,基于框架自带的dropout方法,快速的实现DropBlock(核心仅4行代码)。为此,我们要先了解dropout的运行机制,已经基于该思想的洗礼dropout变种操作。
![](https://img-blog.csdnimg.cn/a141f658e4f44f4b853fc1720e40dcbc.png)
1、Dropout的变种系列
Dropout:按像素随机置0 在训练过程中,使用来自伯努利分布的样本,以概率p随机地将输入张量的一些元素归零.源自论Improving neural networks by preventing co-adaptation of feature detectors [20