class_docstr: Randomly zero out entire channels (a channel is a 2D feature map,
  e.g., the :math:`j`-th channel of the :math:`i`-th sample in the
  batched input is a 2D tensor :math:`\text{input}[i, j]`) of the input tensor).
  Each channel will be zeroed out independently on every forward call.
  with probability :attr:`p` using samples from a Bernoulli distribution.
  
  Usually the input comes from :class:`nn.Conv2d` modules.
  
  As described in the paper
  `Efficient Object Localization Using Convolutional Networks`_ ,
  if adjacent pixels within feature maps are strongly correlated
  (as is normally the case in early convolution layers) then i.i.d. dropout
  will not regularize the activations and will otherwise just result
  in an effective learning rate decrease.
  
  In this case, :func:`nn.Dropout2d` will help promote independence between
  feature maps and should be used instead.
  Shape:
      - Input: :math:`(N, C, H, W)`
      - Output: :math:`(N, C, H, W)` (same shape as input)
  
  Args:
      p (float, optional):
          Probability of an element to be zero-ed.
      inplace (bool, optional):
          If set to ``True``, will do this operation in-place.
  
  Examples::
  
      >>> m = nn.Dropout2d(p=0.2)
      >>> input = torch.randn(20, 16, 32, 32)
      >>> output = m(input)
  
  .. _Efficient Object Localization Using Convolutional Networks:
     http://arxiv.org/abs/1411.4280
class_docstr_tok: ["Randomly","zero","out","entire","channels","(","a","channel","is","a","2D","feature","map",",","e.g.",",","the",":","math",":","`","j","`","-th","channel","of","the",":","math",":","`","i","`","-th","sample","in","the","batched","input","is","a","2D","tensor",":","math",":","`","\\text","{","input","}","[","i",",","j","]","`",")","of","the","input","tensor",")",".","Each","channel","will","be","zeroed","out","independently","on","every","forward","call",".","with","probability",":","attr",":","`","p","`","using","samples","from","a","Bernoulli","distribution",".","Usually","the","input","comes","from",":","class",":","`","nn.Conv2d","`","modules",".","As","described","in","the","paper","`","Efficient","Object","Localization","Using","Convolutional","Networks","`","_",",","if","adjacent","pixels","within","feature","maps","are","strongly","correlated","(","as","is","normally","the","case","in","early","convolution","layers",")","then","i.i.d",".","dropout","will","not","regularize","the","activations","and","will","otherwise","just","result","in","an","effective","learning","rate","decrease",".","In","this","case",",",":","func",":","`","nn.Dropout2d","`","will","help","promote","independence","between","feature","maps","and","should","be","used","instead",".","Shape",":","-","Input",":",":","math",":","`","(","N",",","C",",","H",",","W",")","`","-","Output",":",":","math",":","`","(","N",",","C",",","H",",","W",")","`","(","same","shape","as","input",")","Args",":","p","(","float",",","optional",")",":","Probability","of","an","element","to","be","zero-ed",".","inplace","(","bool",",","optional",")",":","If","set","to","``","True","``",",","will","do","this","operation","in-place",".","Examples",":",":",">",">",">","m","=","nn.Dropout2d","(","p=0.2",")",">",">",">","input","=","torch.randn","(","20",",","16",",","32",",","32",")",">",">",">","output","=","m","(","input",")","..","_Efficient","Object","Localization","Using","Convolutional","Networks",":","http",":","\/\/arxiv.org\/abs\/1411.4280"]
code: def forward(self, input):
      return F.dropout2d(input, self.p, True, self.inplace)
  
file_path: baal/baal/bayesian/dropout.py
imports: from typing import Optional
  import torch
  from torch import nn
  from torch.nn import functional
  from torch.nn.modules.dropout import _DropoutNd
  from baal.bayesian.common import BayesianModule, _patching_wrapper
label_desc: Use image node_id 1 for calling the Dropout2d obj's underlying member method code with example usage: obj.forward(input) and returns: F