it performs implicit ensembling over
2n subnetworks, substantially reducing overfitting (original paper: test error reduced by roughly 4–5%). Inverted dropout moves the scaling into training so inference is cost-free — this is PyTorch's default (torch.nn.Dropout acts only in train mode). When combined with BN, apply dropout BEFORE normalization: BN's re-normalization would absorb dropout's scaling and noise, weakening the regularization.