Fixed bug with Colored Noise returning wrong shapes
This commit is contained in:
parent
55cbd734c0
commit
47815f8a5f
@ -9,6 +9,7 @@ class Colored_Noise():
|
||||
def __init__(self, known_shape=None, beta=1, num_samples=2**14, random_state=None):
|
||||
assert known_shape, 'known_shape need to be defined for Colored Noise'
|
||||
self.known_shape = known_shape
|
||||
self.compact_shape = np.prod(list(known_shape))
|
||||
self.beta = beta
|
||||
self.num_samples = num_samples # Actually very cheap...
|
||||
self.index = 0
|
||||
@ -18,11 +19,11 @@ class Colored_Noise():
|
||||
assert shape == self.known_shape
|
||||
sample = self.samples[:, self.index]
|
||||
self.index = (self.index+1) % self.num_samples
|
||||
return th.Tensor(sample)
|
||||
return th.Tensor(sample).view(self.known_shape)
|
||||
|
||||
def reset(self, random_state=None):
|
||||
self.samples = cn.powerlaw_psd_gaussian(
|
||||
self.beta, self.known_shape + (self.num_samples,), random_state=random_state)
|
||||
self.beta, (self.compact_shape, self.num_samples), random_state=random_state)
|
||||
|
||||
|
||||
class Pink_Noise(Colored_Noise):
|
||||
|
@ -108,9 +108,6 @@ class PCA_Distribution(SB3_Distribution):
|
||||
|
||||
self.base_noise = cast_to_Noise(Base_Noise, (1, action_dim))
|
||||
|
||||
if not isinstance(self.base_noise, noise.White_Noise):
|
||||
print('[!] Non-White Noise was not yet tested!')
|
||||
|
||||
# Premature optimization is the root of all evil
|
||||
self._build_conditioner()
|
||||
# *Optimizes it anyways*
|
||||
@ -154,6 +151,7 @@ class PCA_Distribution(SB3_Distribution):
|
||||
epsilon)
|
||||
# reparameterization with rigged samples
|
||||
actions = pi_mean + pi_std * eta
|
||||
|
||||
self.gaussian_actions = actions
|
||||
return actions
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user