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 __init__(
      self,
      env,
      ob=True,
      ret=True,
      clipob=10.0,
      cliprew=10.0,
      gamma=0.99,
      epsilon=1e-8,
  ):
      super().__init__(env)
      observation_space = env.observation_space.shape[0]
  
      self.ob_rms = (
          RunningMeanStd(shape=observation_space) if ob else None
      )
      self.ret_rms = RunningMeanStd(shape=()) if ret else None
  
      self.clipob = clipob
      self.cliprew = cliprew
      self.gamma = gamma
      self.epsilon = epsilon
      self.ret = np.zeros(1)
      self.training = True
  
imports: import numpy
  import gym
  import time
  from parl.env.compat_wrappers import CompatWrapper
label_desc: Use image node_id 1 to create a new VecNormalizeEnv object from inherited base classes: gym with example: obj = VecNormalizeEnv(env, ob, ret, clipob, cliprew, gamma, epsilon)