class_docstr: | `alias`: ``parl.Agent``
  | `alias`: ``parl.core.fluid.agent.Agent``
  
  | Agent is one of the three basic classes of PARL.
  
  | It is responsible for interacting with the environment and collecting data for training the policy.
  | To implement a customized ``Agent``, users can:
  
    .. code-block:: python
  
      import parl
  
      class MyAgent(parl.Agent):
          def __init__(self, algorithm, act_dim):
              super(MyAgent, self).__init__(algorithm)
              self.act_dim = act_dim
    This class will initialize the neural network parameters automatically, and provides an executor for users to run the programs (self.fluid_executor).
  
  Attributes:
      fluid_executor (fluid.Executor): executor for running programs of the agent.
      alg (parl.algorithm): algorithm of this agent.
  
  Public Functions:
      - ``build_program`` (**abstract function**): build various programs for the agent to interact with outer environment.
      - ``get_weights``: return a Python dictionary containing all the parameters of self.alg.
      - ``set_weights``: copy parameters from ``set_weights()`` to this agent.
      - ``sample``: return a noisy action to perform exploration according to the policy.
      - ``predict``: return an action given current observation.
      - ``learn``: update the parameters of self.alg using the `learn_program` defined in `build_program()`.
      - ``save``: save parameters of the ``agent`` to a given path.
      - ``restore``: restore previous saved parameters from a given path.
  
  Todo:
      - allow users to get parameters of a specified model by specifying the model's name in ``get_weights()``.
class_docstr_tok: ["|","`","alias","`",":","``","parl.Agent","``","|","`","alias","`",":","``","parl.core.fluid.agent.Agent","``","|","Agent","is","one","of","the","three","basic","classes","of","PARL",".","|","It","is","responsible","for","interacting","with","the","environment","and","collecting","data","for","training","the","policy",".","|","To","implement","a","customized","``","Agent","``",",","users","can",":","..","code-block",":",":","python","import","parl","class","MyAgent","(","parl.Agent",")",":","def","__init__","(","self",",","algorithm",",","act_dim",")",":","super","(","MyAgent",",","self",")",".__init__","(","algorithm",")","self.act_dim","=","act_dim","This","class","will","initialize","the","neural","network","parameters","automatically",",","and","provides","an","executor","for","users","to","run","the","programs","(","self.fluid_executor",")",".","Attributes",":","fluid_executor","(","fluid.Executor",")",":","executor","for","running","programs","of","the","agent",".","alg","(","parl.algorithm",")",":","algorithm","of","this","agent",".","Public","Functions",":","-","``","build_program","``","(","*","*","abstract","function","*","*",")",":","build","various","programs","for","the","agent","to","interact","with","outer","environment",".","-","``","get_weights","``",":","return","a","Python","dictionary","containing","all","the","parameters","of","self.alg",".","-","``","set_weights","``",":","copy","parameters","from","``","set_weights","(",")","``","to","this","agent",".","-","``","sample","``",":","return","a","noisy","action","to","perform","exploration","according","to","the","policy",".","-","``","predict","``",":","return","an","action","given","current","observation",".","-","``","learn","``",":","update","the","parameters","of","self.alg","using","the","`","learn_program","`","defined","in","`","build_program","(",")","`",".","-","``","save","``",":","save","parameters","of","the","``","agent","``","to","a","given","path",".","-","``","restore","``",":","restore","previous","saved","parameters","from","a","given","path",".","Todo",":","-","allow","users","to","get","parameters","of","a","specified","model","by","specifying","the","model","'s","name","in","``","get_weights","(",")","``","."]
docstr: Return an action with noise when given the observation of the environment.
  
  In general, this function is used in train process as noise is added to the action to preform exploration.
docstr_tok: ["Return","an","action","with","noise","when","given","the","observation","of","the","environment",".","In","general",",","this","function","is","used","in","train","process","as","noise","is","added","to","the","action","to","preform","exploration","."]
code: def sample(self, *args, **kwargs):
      """Return an action with noise when given the observation of the environment.
  
      In general, this function is used in train process as noise is added to the action to preform exploration.
  
      """
      raise NotImplementedError
  
file_path: PARL/parl/core/fluid/agent.py
imports: import warnings
  import os
  import paddle
  import paddle.fluid
  from parl.core.fluid import layers
  from parl.core.agent_base import AgentBase
  from parl.core.fluid.algorithm import Algorithm
  from parl.utils import machine_info
  from parl.utils import logger
label_desc: Use image node_id 7 for calling the Agent obj's underlying member method code with example usage: obj.sample() without return types