class_docstr: Class corresponding to the regularizer in Algorithm 1 of Kifer et al.
  
  Attributes:
    l2_regularizer: scalar coefficient for l2-regularization term.
    num_train: number of training examples.
    b: tensor of shape (d,num_classes) linearly translating the objective.
class_docstr_tok: ["Class","corresponding","to","the","regularizer","in","Algorithm","1","of","Kifer","et","al",".","Attributes",":","l2_regularizer",":","scalar","coefficient","for","l2-regularization","term",".","num_train",":","number","of","training","examples",".","b",":","tensor","of","shape","(","d",",","num_classes",")","linearly","translating","the","objective","."]
code: def __init__(
      self,
      num_train: int,
      dimension: int,
      epsilon: float,
      delta: float,
      num_classes: int,
      input_clipping_norm: float,
  ):
      self._num_train = num_train
      (
          self._l2_regularizer,
          variance,
      ) = self.logistic_objective_perturbation_parameters(
          num_train, epsilon, delta, num_classes, input_clipping_norm
      )
      self._b = tf.random.normal(
          shape=[dimension, num_classes],
          mean=0.0,
          stddev=math.sqrt(variance),
          dtype=tf.dtypes.float32,
      )
  
file_path: privacy/tensorflow_privacy/privacy/logistic_regression/multinomial_logistic.py
imports: import math
  from typing import List, Optional, Tuple
  import dp_accounting
  import numpy
  import tensorflow
  from tensorflow_privacy.privacy.logistic_regression import datasets
  from tensorflow_privacy.privacy.logistic_regression import single_layer_softmax
  from tensorflow_privacy.privacy.optimizers import dp_optimizer_keras
label_desc: Use image node_id 1 to create a new KiferRegularizer object from inherited base classes: tf.keras.regularizers with example: obj = KiferRegularizer(num_train, dimension, epsilon, delta, num_classes, input_clipping_norm)