class_docstr: Discrete MLP Q Function.
  
  This class implements a Q-value network. It predicts Q-value based on the
  input state and action. It uses an MLP to fit the function Q(s, a).
  
  Args:
      env_spec (EnvSpec): Environment specification.
      name (str): Name of the q-function, also serves as the variable scope.
      hidden_sizes (list[int]): Output dimension of dense layer(s).
          For example, (32, 32) means the MLP of this q-function 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.
class_docstr_tok: ["Discrete","MLP","Q","Function",".","This","class","implements","a","Q-value","network",".","It","predicts","Q-value","based","on","the","input","state","and","action",".","It","uses","an","MLP","to","fit","the","function","Q","(","s",",","a",")",".","Args",":","env_spec","(","EnvSpec",")",":","Environment","specification",".","name","(","str",")",":","Name","of","the","q-function",",","also","serves","as","the","variable","scope",".","hidden_sizes","(","list","[","int","]",")",":","Output","dimension","of","dense","layer","(","s",")",".","For","example",",","(","32",",","32",")","means","the","MLP","of","this","q-function","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","."]
docstr: Return a clone of the Q-function.
  
  It copies the configuration of the primitive and also the parameters.
  
  Args:
      name (str): Name of the newly created q-function.
  
  Returns:
      garage.tf.q_functions.DiscreteMLPQFunction: Clone of this object
docstr_tok: ["Return","a","clone","of","the","Q-function",".","It","copies","the","configuration","of","the","primitive","and","also","the","parameters",".","Args",":","name","(","str",")",":","Name","of","the","newly","created","q-function",".","Returns",":","garage.tf.q_functions.DiscreteMLPQFunction",":","Clone","of","this","object"]
code: def clone(self, name):
      """Return a clone of the Q-function.
  
      It copies the configuration of the primitive and also the parameters.
  
      Args:
          name (str): Name of the newly created q-function.
  
      Returns:
          garage.tf.q_functions.DiscreteMLPQFunction: Clone of this object
  
      """
      new_qf = self.__class__(
          name=name,
          env_spec=self._env_spec,
          hidden_sizes=self._hidden_sizes,
          hidden_nonlinearity=self._hidden_nonlinearity,
          hidden_w_init=self._hidden_w_init,
          hidden_b_init=self._hidden_b_init,
          output_nonlinearity=self._output_nonlinearity,
          output_w_init=self._output_w_init,
          output_b_init=self._output_b_init,
          layer_normalization=self._layer_normalization,
      )
      new_qf.parameters = self.parameters
      return new_qf
  
file_path: garage/src/garage/tf/q_functions/discrete_mlp_q_function.py
imports: import tensorflow
  from garage.experiment import deterministic
  from garage.tf.models import MLPModel
label_desc: Use image node_id 6 for calling the DiscreteMLPQFunction obj's underlying member method code with example usage: obj.clone(name) and returns: new_qf