class_docstr: Encapsulates fields and methods for RL policy and value function estimation with shared parameters
docstr: Compute next action(s) given the observation(s)
  
  Parameters
  ----------
  observation : np array
      Observation data (either single or a batch)
  **extra_feed
      Additional data such as state or mask (names of the arguments should match the ones in constructor, see __init__)
  
  Returns
  -------
  (action, value estimate, next state, negative log likelihood of the action under current policy parameters) tuple
docstr_tok: ["Compute","next","action","(","s",")","given","the","observation","(","s",")","Parameters","--","--","--","--","--","observation",":","np","array","Observation","data","(","either","single","or","a","batch",")","*","*","extra_feed","Additional","data","such","as","state","or","mask","(","names","of","the","arguments","should","match","the","ones","in","constructor",",","see","__init__",")","Returns","--","--","--","-","(","action",",","value","estimate",",","next","state",",","negative","log","likelihood","of","the","action","under","current","policy","parameters",")","tuple"]
code: def step(self, step, observation, **extra_feed):
      """
      Compute next action(s) given the observation(s)
  
      Parameters
      ----------
      observation : np array
          Observation data (either single or a batch)
      **extra_feed
          Additional data such as state or mask (names of the arguments should match the ones in constructor, see __init__)
  
      Returns
      -------
      (action, value estimate, next state, negative log likelihood of the action under current policy parameters) tuple
      """
      extra_feed["act_step"] = step
      a, v, state, neglogp = self._evaluate(
          [self.act_action, self.vf, self.state, self.act_neglogp],
          observation,
          **extra_feed,
      )
      if state.size == 0:
          state = None
      return a, v, state, neglogp
  
file_path: nni/nni/algorithms/hpo/ppo_tuner/policy.py
imports: import tensorflow.compat.v1
  from .distri import CategoricalPdType
  from .util import lstm_model, fc, observation_placeholder, adjust_shape
label_desc: Use image node_id 4 for calling the PolicyWithValue obj's underlying member method code with example usage: obj.step(step, observation) and returns: a,  v,  state,  neglogp