class_docstr: Implementation of Interval based certification for neural network robustness.
  We use the interval (also called box) representation of a datapoint as it travels through the network
  to then verify if it can have its class changed given a certain perturbation.
  
  | Paper link: https://ieeexplore.ieee.org/document/8418593
  
  This classifier has 3 modes which can be set via: classifier.model.set_forward_mode('mode')
  
  'mode' can be one of:
      + 'abstract': When we wish to certifiy datapoints and have abstract predictions
      + 'concrete': When normal predictions need to be made
      + 'attack': When we are interfacing with an ART attack (for example PGD).
docstr: Access function to get the classifier loss
  
  :param output: model predictions
  :param target: ground truth labels
  :return: loss value
docstr_tok: ["Access","function","to","get","the","classifier","loss",":","param","output",":","model","predictions",":","param","target",":","ground","truth","labels",":","return",":","loss","value"]
code: def concrete_loss(
      self, output: "torch.Tensor", target: "torch.Tensor"
  ) -> "torch.Tensor":
      """
      Access function to get the classifier loss
  
      :param output: model predictions
      :param target: ground truth labels
      :return: loss value
      """
      return self._loss(output, target)
  
imports: from typing import List, Optional, Tuple, Union, Callable, Any, TYPE_CHECKING
  import logging
  import warnings
  import numpy
  import torch
  from art.estimators.certification.interval.interval import PyTorchIntervalConv2D, PyTorchIntervalDense, PyTorchIntervalReLU, PyTorchIntervalBounds
  from art.estimators.classification.pytorch import PyTorchClassifier
label_desc: Use image node_id 5 for calling the PyTorchIBPClassifier obj's underlying member method code with example usage: obj.concrete_loss(output, target) and returns: self