dropout层加在哪里_好耐冇见|Dropout层和BN层和池化层的反向传播

本文详细介绍了Dropout的作用和在训练、测试阶段的区别,解释了PyTorch中Dropout层的实现。同时讨论了BN层在训练和测试时的不同,以及为何不用全量训练集的均值和方差。最后,概述了Pooling层的反向传播,包括mean pooling和max pooling的处理方式。
摘要由CSDN通过智能技术生成

Dropout

1.dropout的过程:

- 首先随机(临时)删掉网络中一半的隐藏神经元,输入输出神经元保持不变

- 然后把输入x通过修改后的网络前向传播,然后把得到的损失结果通过修改的网络反向传播。一小批训练样本执行完这个过程后,在没有被删除的神经元上按照随机梯度下降法更新对应的参数(w,b)

- 恢复被删掉的神经元(此时被删除的神经元保持原样,而没有被删除的神经元已经有所更新)

- 然后继续重复这一过程。

2.从上面可以看出,dropout其实没有严格反传播过程,或者说是和(没有dropout)一样的反向传播。因为其中的参数也不会被学习。

3.pytorch中dropout的调用,torch.nn.Dropout(0.4),0.4为随机丢弃神经元的概率。

4.dropout的代码实现思路:

- 训练阶段:无可避免的,在训练网络的每个单元都要添加一道概率流程。

- 没有Dropout的网络计算公式

- 采用Dropout的网络计算公式

- 上面公式中Bernoulli函数是为了生成概率r向量,也就是随机生成一个0、1的向量。

5.dropout经过上面屏蔽掉某些神经元,使其激活值为0,我们还需要对向量y1……y1000进行缩放,也就是乘以1/(1-p)。如果在训练的时候,经过置0后,没有对y1……y1000进行缩放(rescale)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值