Source code for energym.wrappers.clip_inputs
import numpy as np
from energym.envs.env import InputsWrapper
from energym.spaces.box import Box
[docs]class ClipInputs(InputsWrapper):
r"""Clip the continuous action within the valid bound. """
def __init__(self, env):
self.rel_keys = [
p
for p in list(env.input_space.spaces.keys())
if isinstance(env.input_space[p], Box)
]
super(ClipInputs, self).__init__(env)
def inputs(self, inputs):
to_clip = [key for key in inputs if key in self.rel_keys]
for key in to_clip:
inputs[key] = np.clip(
inputs[key], self.input_space[key].low[0], self.input_space[key].high[0]
)
return inputs