class_docstr: NormalizedInputMLPModel based on garage.tf.models.Model class.
  
  This class normalized the inputs and pass the normalized input to a
  MLP model, which can be used to perform linear regression to the outputs.
  
  Args:
      input_shape (tuple[int]): Input shape of the training data.
      output_dim (int): Output dimension of the model.
      name (str): Model name, also the variable scope.
      hidden_sizes (list[int]): Output dimension of dense layer(s) for
          the MLP for mean. For example, (32, 32) means the MLP consists
          of two hidden layers, each with 32 hidden units.
      hidden_nonlinearity (callable): Activation function for intermediate
          dense layer(s). It should return a tf.Tensor. Set it to
          None to maintain a linear activation.
      hidden_w_init (callable): Initializer function for the weight
          of intermediate dense layer(s). The function should return a
          tf.Tensor.
      hidden_b_init (callable): Initializer function for the bias
          of intermediate dense layer(s). The function should return a
          tf.Tensor.
      output_nonlinearity (callable): Activation function for output dense
          layer. It should return a tf.Tensor. Set it to None to
          maintain a linear activation.
      output_w_init (callable): Initializer function for the weight
          of output dense layer(s). The function should return a
          tf.Tensor.
      output_b_init (callable): Initializer function for the bias
          of output dense layer(s). The function should return a
          tf.Tensor.
      layer_normalization (bool): Bool for using layer normalization or not.
docstr: Build model given input placeholder(s).
  
  Args:
      state_input (tf.Tensor): Tensor input for state.
      name (str): Inner model name, also the variable scope of the
          inner model, if exist. One example is
          garage.tf.models.Sequential.
  
  Return:
      tf.Tensor: Tensor output of the model.
code: def _build(self, state_input, name=None):
      """Build model given input placeholder(s).
  
      Args:
          state_input (tf.Tensor): Tensor input for state.
          name (str): Inner model name, also the variable scope of the
              inner model, if exist. One example is
              garage.tf.models.Sequential.
  
      Return:
          tf.Tensor: Tensor output of the model.
  
      """
      with tf.compat.v1.variable_scope("normalized_vars"):
          x_mean_var = tf.compat.v1.get_variable(
              name="x_mean",
              shape=(1,) + self._input_shape,
              dtype=np.float32,
              initializer=tf.zeros_initializer(),
              trainable=False,
          )
          x_std_var = tf.compat.v1.get_variable(
              name="x_std_var",
              shape=(1,) + self._input_shape,
              dtype=np.float32,
              initializer=tf.ones_initializer(),
              trainable=False,
          )
  
      normalized_xs_var = (state_input - x_mean_var) / x_std_var
  
      y_hat = super()._build(normalized_xs_var)
  
      return y_hat, x_mean_var, x_std_var
  
file_path: garage/src/garage/tf/models/normalized_input_mlp_model.py
imports: import numpy
  import tensorflow
  from garage.experiment import deterministic
  from garage.tf.models.mlp_model import MLPModel
label_desc: Use image node_id 3 for calling the NormalizedInputMLPModel obj's underlying member method code with example usage: obj._build(state_input, name) and returns: y_hat,  x_mean_var,  x_std_var