def GetLoss(self, get_deriv=False, acc_deriv=False, **kwargs):
    'Compute loss and also deriv w.r.t to it if asked for.\n\n    Compute the loss function. Targets should be in self.data, predictions\n    should be in self.state.\n    Args:\n      get_deriv: If True, compute the derivative w.r.t the loss function and put\n        it in self.deriv.\n    '
    perf = deepnet_pb2.Metrics()
    perf.MergeFrom(self.proto.performance_stats)
    perf.count = self.batchsize
    tiny = self.tiny
    if (self.loss_function == deepnet_pb2.Layer.CROSS_ENTROPY):
        data = self.data
        state = self.state
        temp1 = self.statesize
        cm.cross_entropy_bernoulli(data, state, target=temp1, tiny=self.tiny)
        perf.cross_entropy = temp1.sum()
        cm.correct_preds(data, state, target=temp1, cutoff=0.5)
        perf.correct_preds = temp1.sum()
        if get_deriv:
            self.state.subtract(self.data, target=self.deriv)
    elif (self.loss_function == deepnet_pb2.Layer.SQUARED_LOSS):
        target = self.statesize
        self.state.subtract(self.data, target=target)
        error = (target.euclid_norm() ** 2)
        perf.error = error
        if acc_deriv:
            self.deriv.add_mult(target, alpha=self.loss_weight)
        else:
            self.deriv.assign(target)
        if get_deriv:
            self.ComputeDeriv()
    else:
        raise Exception('Unknown loss function for logistic units.')
    return perf
Compute loss and also deriv w.r.t to it if asked for.

Compute the loss function. Targets should be in self.data, predictions
should be in self.state.
Args:
  get_deriv: If True, compute the derivative w.r.t the loss function and put
    it in self.deriv.
def GetLoss(self, get_deriv=False, acc_deriv=False, **kwargs):
    'Compute loss and also deriv w.r.t to it if asked for.\n\n    Compute the loss function. Targets should be in self.data, predictions\n    should be in self.state.\n    Args:\n      get_deriv: If True, compute the derivative w.r.t the loss function and put\n        it in self.deriv.\n    '
    perf = deepnet_pb2.Metrics()
    perf.MergeFrom(self.proto.performance_stats)
    perf.count = self.batchsize
    tiny = self.tiny
    if (self.loss_function == deepnet_pb2.Layer.CROSS_ENTROPY):
        data = self.data
        state = self.state
        temp1 = self.statesize
        cm.cross_entropy_bernoulli(data, state, target=temp1, tiny=self.tiny)
        perf.cross_entropy = temp1.sum()
        cm.correct_preds(data, state, target=temp1, cutoff=0.5)
        perf.correct_preds = temp1.sum()
        if get_deriv:
            self.state.subtract(self.data, target=self.deriv)
    elif (self.loss_function == deepnet_pb2.Layer.SQUARED_LOSS):
        target = self.statesize
        self.state.subtract(self.data, target=target)
        error = (target.euclid_norm() ** 2)
        perf.error = error
        if acc_deriv:
            self.deriv.add_mult(target, alpha=self.loss_weight)
        else:
            self.deriv.assign(target)
        if get_deriv:
            self.ComputeDeriv()
    else:
        raise Exception('Unknown loss function for logistic units.')
    return perf