docstr: Args:
      obs_np: a numpy float32 array of shape ([B] + observation_space).
              Format of image input should be NCHW format.
  
  Returns:
      sample_ids: a numpy int64 array of shape [B]
      values: a numpy float32 array of shape [B]
docstr_tok: ["Args",":","obs_np",":","a","numpy","float32","array","of","shape","(","[","B","]","+","observation_space",")",".","Format","of","image","input","should","be","NCHW","format",".","Returns",":","sample_ids",":","a","numpy","int64","array","of","shape","[","B","]","values",":","a","numpy","float32","array","of","shape","[","B","]"]
code: def sample(self, obs_np):
      """
      Args:
          obs_np: a numpy float32 array of shape ([B] + observation_space).
                  Format of image input should be NCHW format.
  
      Returns:
          sample_ids: a numpy int64 array of shape [B]
          values: a numpy float32 array of shape [B]
      """
      obs_np = obs_np.astype("float32")
  
      sample_actions, values = self.fluid_executor.run(
          self.sample_program,
          feed={"obs": obs_np},
          fetch_list=self.sample_outputs,
      )
      return sample_actions, values
  
file_path: PARL/benchmark/fluid/A2C/atari_agent.py
imports: import numpy
  import paddle.fluid
  import parl
  from parl import layers
  from parl.utils import machine_info
  from parl.utils.scheduler import PiecewiseScheduler, LinearDecayScheduler
label_desc: Use image node_id 3 for calling the AtariAgent obj's underlying member method code with example usage: obj.sample(obs_np) and returns: sample_actions,  values