class_docstr: Agent of PPO env
  
  Args:
      algorithm (`parl.Algorithm`): algorithm to be used in this agent.
      config (dict): configs that used in this agent
class_docstr_tok: ["Agent","of","PPO","env","Args",":","algorithm","(","`","parl.Algorithm","`",")",":","algorithm","to","be","used","in","this","agent",".","config","(","dict",")",":","configs","that","used","in","this","agent"]
docstr: Predict action from current policy given observation
  
  Args:
      obs (np.array): observation, shape([batch_size] + obs_shape)
docstr_tok: ["Predict","action","from","current","policy","given","observation","Args",":","obs","(","np.array",")",":","observation",",","shape","(","[","batch_size","]","+","obs_shape",")"]
code: def predict(self, obs):
      """Predict action from current policy given observation
  
      Args:
          obs (np.array): observation, shape([batch_size] + obs_shape)
      """
      obs = paddle.to_tensor(obs, dtype="float32").unsqueeze(0)
      action = self.alg.predict(obs)
      action_numpy = action.detach().numpy()[0]
      return action_numpy
  
file_path: PARL/examples/PPO/agent.py
imports: import parl
  import paddle
  import numpy
  from parl.utils.scheduler import LinearDecayScheduler
label_desc: Use image node_id 2 for calling the PPOAgent obj's underlying member method code with example usage: obj.predict(obs) and returns: action_numpy