code: def dropout_channels(incoming, *args, **kwargs):
      """
      Convenience function to drop full channels of feature maps.
  
      Adds a :class:`DropoutLayer` that sets feature map channels to zero, across
      all locations, with probability p. For convolutional neural networks, this
      may give better results than independent dropout [1]_.
  
      Parameters
      ----------
      incoming : a :class:`Layer` instance or a tuple
          the layer feeding into this layer, or the expected input shape
      *args, **kwargs
          Any additional arguments and keyword arguments are passed on to the
          :class:`DropoutLayer` constructor, except for `shared_axes`.
  
      Returns
      -------
      layer : :class:`DropoutLayer` instance
          The dropout layer with `shared_axes` set to drop channels.
  
      References
      ----------
      .. [1] J. Tompson, R. Goroshin, A. Jain, Y. LeCun, C. Bregler (2014):
             Efficient Object Localization Using Convolutional Networks.
             https://arxiv.org/abs/1411.4280
      """
      ndim = len(getattr(incoming, "output_shape", incoming))
      kwargs["shared_axes"] = tuple(range(2, ndim))
      return DropoutLayer(incoming, *args, **kwargs)
  
file_path: Lasagne/lasagne/layers/noise.py
imports: import theano
  import theano.tensor
  from .base import Layer
  from ..random import get_rng
  from theano.sandbox.rng_mrg import MRG_RandomStreams
label_desc: Use image node_id 1 for calling a global function with example usage: dropout_channels(incoming) and returns: DropoutLayer