Source code for pytorchrl.agent.actors.noise.ou

import copy 
import random 
import torch


[docs]class OUNoise: """Ornstein-Uhlenbeck process.""" def __init__(self, size, mu=0., theta=0.15, sigma=0.2): """Initialize parameters and noise process.""" self.mu = mu * torch.ones(size) self.theta = theta self.sigma = sigma self.reset()
[docs] def reset(self): """Reset the internal state (= noise) to mean (mu).""" self.state = copy.copy(self.mu)
[docs] def sample(self): """Update internal state and return it as a noise sample.""" x = self.state dx = self.theta * (self.mu - x) + self.sigma * torch.tensor([random.random() for i in range(len(x))]) self.state = x + dx return self.state