class_docstr: Class which converts the supplied pytorch model into an equivalent model
  which uses abstract operations
class_docstr_tok: ["Class","which","converts","the","supplied","pytorch","model","into","an","equivalent","model","which","uses","abstract","operations"]
docstr: Performs the neural network forward pass, either using abstract operations or concrete ones
  depending on the value of self.forward_mode
  
  :param cent: input data, either regular data if running in concrete mode, or the zonotope bias term.
  :param eps: zonotope error terms if running in abstract mode
  :return: model predictions, with zonotope error terms if running in abstract mode
docstr_tok: ["Performs","the","neural","network","forward","pass",",","either","using","abstract","operations","or","concrete","ones","depending","on","the","value","of","self.forward_mode",":","param","cent",":","input","data",",","either","regular","data","if","running","in","concrete","mode",",","or","the","zonotope","bias","term",".",":","param","eps",":","zonotope","error","terms","if","running","in","abstract","mode",":","return",":","model","predictions",",","with","zonotope","error","terms","if","running","in","abstract","mode"]
code: def forward(
      self, cent: np.ndarray, eps: Optional[np.ndarray] = None
  ) -> Union["torch.Tensor", Tuple["torch.Tensor", "torch.Tensor"]]:
      """
      Performs the neural network forward pass, either using abstract operations or concrete ones
      depending on the value of self.forward_mode
  
      :param cent: input data, either regular data if running in concrete mode, or the zonotope bias term.
      :param eps: zonotope error terms if running in abstract mode
      :return: model predictions, with zonotope error terms if running in abstract mode
      """
      if self.forward_mode == "concrete":
          return self.concrete_forward(cent)
      if self.forward_mode == "abstract":
          if eps is not None:
              out_cent, out_eps = self.abstract_forward(cent, eps)
              return out_cent, out_eps
          raise ValueError(
              "for abstract forward mode, please provide both cent and eps"
          )
      raise ValueError(
          "forward_mode must be set to abstract or concrete"
      )
  
imports: from typing import List, Optional, Tuple, Union, Callable, Any, TYPE_CHECKING
  import logging
  import math
  import warnings
  import sys
  import numpy
  import torch
  from art.estimators.certification.deep_z.deep_z import ZonoConv, ZonoDenseLayer, ZonoReLU, ZonoBounds
  from art.estimators.classification.pytorch import PyTorchClassifier
label_desc: Use image node_id 2 for calling the ConvertedModel obj's underlying member method code with example usage: obj.forward(cent, eps) and returns: self, out_cent,  out_eps