class_docstr: lasagne.layers.BiasLayer(incoming, b=lasagne.init.Constant(0),
  shared_axes='auto', **kwargs)
  
  A layer that just adds a (trainable) bias term.
  
  Parameters
  ----------
  incoming : a :class:`Layer` instance or a tuple
      The layer feeding into this layer, or the expected input shape
  
  b : Theano shared variable, expression, numpy array, callable or ``None``
      Initial value, expression or initializer for the biases. If set to
      ``None``, the layer will have no biases and pass through its input
      unchanged. Otherwise, the bias shape must match the incoming shape,
      skipping those axes the biases are shared over (see the example below).
      See :func:`lasagne.utils.create_param` for more information.
  
  shared_axes : 'auto', int or tuple of int
      The axis or axes to share biases over. If ``'auto'`` (the default),
      share over all axes except for the second: this will share biases over
      the minibatch dimension for dense layers, and additionally over all
      spatial dimensions for convolutional layers.
  
  Notes
  -----
  The bias parameter dimensionality is the input dimensionality minus the
  number of axes the biases are shared over, which matches the bias parameter
  conventions of :class:`DenseLayer` or :class:`Conv2DLayer`. For example:
  
  >>> layer = BiasLayer((20, 30, 40, 50), shared_axes=(0, 2))
  >>> layer.b.get_value().shape
  (30, 50)
code: def __init__(
      self, incoming, b=init.Constant(0), shared_axes="auto", **kwargs
  ):
      super(BiasLayer, self).__init__(incoming, **kwargs)
  
      if shared_axes == "auto":
          # default: share biases over all but the second axis
          shared_axes = (0,) + tuple(range(2, len(self.input_shape)))
      elif isinstance(shared_axes, int_types):
          shared_axes = (shared_axes,)
      self.shared_axes = shared_axes
  
      if b is None:
          self.b = None
      else:
          # create bias parameter, ignoring all dimensions in shared_axes
          shape = [
              size
              for axis, size in enumerate(self.input_shape)
              if axis not in self.shared_axes
          ]
          if any(size is None for size in shape):
              raise ValueError(
                  "BiasLayer needs specified input sizes for "
                  "all axes that biases are not shared over."
              )
          self.b = self.add_param(b, shape, "b", regularizable=False)
  
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 1 to create a new BiasLayer object from inherited base classes: Layer with example: obj = BiasLayer(incoming, b, shared_axes)