class torch.nn.Dropout(p=0.5, inplace=False)[source]

During training, randomly zeroes some of the elements of the input tensor with probability p.

The zeroed elements are chosen independently for each forward call and are sampled from a Bernoulli distribution.

Each channel will be zeroed out independently on every forward call.

This has proven to be an effective technique for regularization and preventing the co-adaptation of neurons as described in the paper Improving neural networks by preventing co-adaptation of feature detectors .

Furthermore, the outputs are scaled by a factor of 11p\frac{1}{1-p} during training. This means that during evaluation the module simply computes an identity function.

  • p (float) – probability of an element to be zeroed. Default: 0.5

  • inplace (bool) – If set to True, will do this operation in-place. Default: False

  • Input: ()(*). Input can be of any shape

  • Output: ()(*). Output is of the same shape as input


>>> m = nn.Dropout(p=0.2)
>>> input = torch.randn(20, 16)
>>> output = m(input)


Access comprehensive developer documentation for PyTorch

View Docs


Get in-depth tutorials for beginners and advanced developers

View Tutorials


Find development resources and get your questions answered

View Resources