ray/rllib/env/normalize_actions.py

22 lines
630 B
Python
Raw Normal View History

import gym
from gym import spaces
import numpy as np
class NormalizeActionWrapper(gym.ActionWrapper):
"""Rescale the action space of the environment."""
def action(self, action):
if not isinstance(self.env.action_space, spaces.Box):
return action
# rescale the action
low, high = self.env.action_space.low, self.env.action_space.high
scaled_action = low + (action + 1.0) * (high - low) / 2.0
scaled_action = np.clip(scaled_action, low, high)
return scaled_action
def reverse_action(self, action):
raise NotImplementedError