class_docstr: BoltOn episilon-delta differential privacy model.
  
  The privacy guarantees are dependent on the noise that is sampled. Please
  see the paper linked below for more details.
  
  Uses 4 key steps to achieve privacy guarantees:
  1. Adds noise to weights after training (output perturbation).
  2. Projects weights to R after each batch
  3. Limits learning rate
  4. Use a strongly convex loss function (see compile)
  
  For more details on the strong convexity requirements, see:
  Bolt-on Differential Privacy for Scalable Stochastic Gradient
  Descent-based Analytics by Xi Wu et al.
docstr: Forward pass of network.
  
  Args:
      inputs: inputs to neural network
  
  Returns:
    Output logits for the given inputs.
docstr_tok: ["Forward","pass","of","network",".","Args",":","inputs",":","inputs","to","neural","network","Returns",":","Output","logits","for","the","given","inputs","."]
code: def call(self, inputs):  # pylint: disable=arguments-differ
      """Forward pass of network.
  
      Args:
          inputs: inputs to neural network
  
      Returns:
        Output logits for the given inputs.
  
      """
      return self.output_layer(inputs)
  
file_path: privacy/tensorflow_privacy/privacy/bolt_on/models.py
imports: import tensorflow.compat.v1
  from tensorflow.compat.v1.python.framework import ops
  from tensorflow.compat.v1.python.keras import optimizers
  from tensorflow.compat.v1.python.keras.models import Model
  from tensorflow_privacy.privacy.bolt_on.losses import StrongConvexMixin
  from tensorflow_privacy.privacy.bolt_on.optimizers import BoltOn
label_desc: Use image node_id 2 for calling the BoltOnModel obj's underlying member method code with example usage: obj.call(inputs) and returns: self