class_docstr: A layer that applies a randomized leaky rectify nonlinearity to its input.
  
  The randomized leaky rectifier was first proposed and used in the Kaggle
  NDSB Competition, and later evaluated in [1]_. Compared to the standard
  leaky rectifier :func:`leaky_rectify`, it has a randomly sampled slope
  for negative input during training, and a fixed slope during evaluation.
  
  Equation for the randomized rectifier linear unit during training:
  :math:`\varphi(x) = \max((\sim U(lower, upper)) \cdot x, x)`
  
  During evaluation, the factor is fixed to the arithmetic mean of `lower`
  and `upper`.
  
  Parameters
  ----------
  incoming : a :class:`Layer` instance or a tuple
      The layer feeding into this layer, or the expected input shape
  
  lower : Theano shared variable, expression, or constant
      The lower bound for the randomly chosen slopes.
  
  upper : Theano shared variable, expression, or constant
      The upper bound for the randomly chosen slopes.
  
  shared_axes : 'auto', 'all', int or tuple of int
      The axes along which the random slopes of the rectifier units are
      going to be shared. If ``'auto'`` (the default), share over all axes
      except for the second - this will share the random slope over the
      minibatch dimension for dense layers, and additionally over all
      spatial dimensions for convolutional layers. If ``'all'``, share over
      all axes, thus using a single random slope.
  
  **kwargs
      Any additional keyword arguments are passed to the `Layer` superclass.
  
   References
  ----------
  .. [1] Bing Xu, Naiyan Wang et al. (2015):
     Empirical Evaluation of Rectified Activations in Convolutional Network,
     http://arxiv.org/abs/1505.00853
docstr: Parameters
  ----------
  input : tensor
      output from the previous layer
  deterministic : bool
      If true, the arithmetic mean of lower and upper are used for the
      leaky slope.
docstr_tok: ["Parameters","--","--","--","--","--","input",":","tensor","output","from","the","previous","layer","deterministic",":","bool","If","true",",","the","arithmetic","mean","of","lower","and","upper","are","used","for","the","leaky","slope","."]
code: def get_output_for(self, input, deterministic=False, **kwargs):
      """
      Parameters
      ----------
      input : tensor
          output from the previous layer
      deterministic : bool
          If true, the arithmetic mean of lower and upper are used for the
          leaky slope.
      """
      if deterministic or self.upper == self.lower:
          return theano.tensor.nnet.relu(
              input, (self.upper + self.lower) / 2.0
          )
      else:
          shape = list(self.input_shape)
          if any(s is None for s in shape):
              shape = list(input.shape)
          for ax in self.shared_axes:
              shape[ax] = 1
  
          rnd = self._srng.uniform(
              tuple(shape),
              low=self.lower,
              high=self.upper,
              dtype=theano.config.floatX,
          )
          rnd = theano.tensor.addbroadcast(rnd, *self.shared_axes)
          return theano.tensor.nnet.relu(input, rnd)
  
imports: import theano
  import theano.tensor
  import numpy
  from ..None import init
  from ..None import nonlinearities
  from ..utils import as_tuple, floatX, int_types
  from ..random import get_rng
  from .base import Layer, MergeLayer
  from theano.sandbox.rng_mrg import MRG_RandomStreams
label_desc: Use image node_id 2 for calling the RandomizedRectifierLayer obj's underlying member method code with example usage: obj.get_output_for(input, deterministic) and returns: theano, theano