class_docstr: Cross-channel Local Response Normalization for 2D feature maps.
  
  Aggregation is purely across channels, not within channels,
  and performed "pixelwise".
  
  If the value of the :math:`i` th channel is :math:`x_i`, the output is
  
  .. math::
      x_i = \frac{x_i}{ (k + ( \alpha \sum_j x_j^2 ))^\beta }
  
  where the summation is performed over this position on :math:`n`
  neighboring channels.
  
  Parameters
  ----------
  incoming : a :class:`Layer` instance or a tuple
      The layer feeding into this layer, or the expected input shape. Must
      follow *BC01* layout, i.e., ``(batchsize, channels, rows, columns)``.
  alpha : float scalar
      coefficient, see equation above
  k : float scalar
      offset, see equation above
  beta : float scalar
      exponent, see equation above
  n : int
      number of adjacent channels to normalize over, must be odd
  
  Notes
  -----
  This code is adapted from pylearn2. See the module docstring for license
  information.
class_docstr_tok: ["Cross-channel","Local","Response","Normalization","for","2D","feature","maps",".","Aggregation","is","purely","across","channels",",","not","within","channels",",","and","performed","``","pixelwise","''",".","If","the","value","of","the",":","math",":","`","i","`","th","channel","is",":","math",":","`","x_i","`",",","the","output","is","..","math",":",":","x_i","=","\\frac","{","x_i","}","{","(","k","+","(","\\alpha","\\sum_j","x_j^2",")",")","^\\beta","}","where","the","summation","is","performed","over","this","position","on",":","math",":","`","n","`","neighboring","channels",".","Parameters","--","--","--","--","--","incoming",":","a",":","class",":","`","Layer","`","instance","or","a","tuple","The","layer","feeding","into","this","layer",",","or","the","expected","input","shape",".","Must","follow","*","BC01","*","layout",",","i.e.",",","``","(","batchsize",",","channels",",","rows",",","columns",")","``",".","alpha",":","float","scalar","coefficient",",","see","equation","above","k",":","float","scalar","offset",",","see","equation","above","beta",":","float","scalar","exponent",",","see","equation","above","n",":","int","number","of","adjacent","channels","to","normalize","over",",","must","be","odd","Notes","--","--","-","This","code","is","adapted","from","pylearn2",".","See","the","module","docstring","for","license","information","."]
code: def __init__(
      self, incoming, alpha=1e-4, k=2, beta=0.75, n=5, **kwargs
  ):
      super(LocalResponseNormalization2DLayer, self).__init__(
          incoming, **kwargs
      )
      self.alpha = alpha
      self.k = k
      self.beta = beta
      self.n = n
      if n % 2 == 0:
          raise NotImplementedError("Only works with odd n")
  
imports: import theano
  import theano.tensor
  from ..None import init
  from ..None import nonlinearities
  from ..utils import int_types
  from .base import Layer
label_desc: Use image node_id 1 to create a new LocalResponseNormalization2DLayer object from inherited base classes: Layer with example: obj = LocalResponseNormalization2DLayer(incoming, alpha, k, beta, n)