Spaces:
Sleeping
Sleeping
import numpy as np | |
import random | |
import copy | |
class OU_Noise(object): | |
"""Ornstein-Uhlenbeck process.""" | |
def __init__(self, size, seed, mu=0., theta=0.15, sigma=0.2): | |
self.mu = mu * np.ones(size) | |
self.theta = theta | |
self.sigma = sigma | |
self.seed = random.seed(seed) | |
self.reset() | |
def reset(self): | |
"""Reset the internal state (= noise) to mean (mu).""" | |
self.state = copy.copy(self.mu) | |
def sample(self): | |
"""Update internal state and return it as a noise sample.""" | |
dx = self.theta * (self.mu - self.state) + self.sigma * np.array([np.random.normal() for _ in range(len(self.state))]) | |
self.state += dx | |
return self.state |