'Computes the expression of the cost of the model (given the type of
layer used).
:type state_below: tensor or layer
:param state_below: The theano expression (or groundhog layer)
representing the input of the cost layer
:type target: tensor or layer
:param target: The theano expression (or groundhog layer)
representing the target (used to evaluate the prediction of the
output layer)
:type mask: None or mask or layer
:param mask: Mask, depicting which of the predictions should be
ignored (e.g. due to them resulting from padding a sequence
with 0s)
:type temp: float or tensor scalar
:param temp: scalar representing the temperature that should be used
when sampling from the output distribution
:type reg: None or layer or theano scalar expression
:param reg: additional regularization term that should be added to
the cost
:type scale: float or None or theano scalar
:param scale: scaling factor with which the cost is multiplied
:type sum_over_time: bool or None
:param sum_over_time: this flag overwrites the value given to this
property in the constructor of the class
:type use_noise: bool
:param use_noise: flag. If true, noise is used when computing the
output of the model
:type additional_inputs: list theano variable or layers
:param additional_inputs: list of theano variables or layers
representing the additional inputs
:type no_noise_bias: bool
:param no_noise_bias: flag, stating if weight noise should be added
to the bias as well, or only to the weights'

def get_cost(self, state_below, target=None, mask=None, temp=1, reg=None, scale=None, sum_over_time=None, use_noise=True, additional_inputs=None, no_noise_bias=False):

    raise NotImplemented
