class_docstr: Env wrapper that normalize reward, observation based on running mean return and running mean variance.
      
class_docstr_tok: ["Env","wrapper","that","normalize","reward",",","observation","based","on","running","mean","return","and","running","mean","variance","."]
code: def step(self, action):
      ob, rew, new, info = self.env.step(action)
      self.ret = self.ret * self.gamma + rew
  
      ob = self._obfilt(ob)
      # normalize reward
      if self.ret_rms:
          self.ret_rms.update(self.ret)
          rew = np.clip(
              rew / np.sqrt(self.ret_rms.var + self.epsilon),
              -self.cliprew,
              self.cliprew,
          )
  
      if new:
          self.ret = np.zeros(1)
  
      return ob, rew, new, info
  
imports: import numpy
  import gym
  import time
  from parl.env.compat_wrappers import CompatWrapper
label_desc: Use image node_id 2 for calling the VecNormalizeEnv obj's underlying member method code with example usage: obj.step(action) and returns: ob,  rew,  new,  info