19 lines
571 B
Python
19 lines
571 B
Python
import numpy as np
|
|
|
|
|
|
class RunningMeanStd(object):
|
|
def __init__(self, epsilon=1e-4, shape=()):
|
|
self.mean = np.zeros(shape, np.float64)
|
|
self.var = np.ones(shape, np.float64)
|
|
self.count = epsilon
|
|
|
|
|
|
class Normalizer(RunningMeanStd):
|
|
def __init__(self, input_dim, epsilon=1e-4, clip_obs=10.0):
|
|
super().__init__(shape=input_dim)
|
|
self.epsilon = epsilon
|
|
self.clip_obs = clip_obs
|
|
|
|
def normalize(self, input):
|
|
return np.clip((input - self.mean) / np.sqrt(self.var + self.epsilon), -self.clip_obs, self.clip_obs)
|