1
0
mirror of https://github.com/gryf/coach.git synced 2025-12-18 03:30:19 +01:00

Tweak additional_simulator_parameters for easier configuration and better error logging. (#69)

This commit is contained in:
Leo Dirac
2018-11-07 11:01:12 -08:00
committed by Scott Leishman
parent 49dea39d34
commit 8f0415b4cc

View File

@@ -63,7 +63,7 @@ class GymEnvironmentParameters(EnvironmentParameters):
super().__init__(level=level) super().__init__(level=level)
self.random_initialization_steps = 0 self.random_initialization_steps = 0
self.max_over_num_frames = 1 self.max_over_num_frames = 1
self.additional_simulator_parameters = None self.additional_simulator_parameters = {}
@property @property
def path(self): def path(self):
@@ -178,7 +178,7 @@ class MaxOverFramesAndFrameskipEnvWrapper(gym.Wrapper):
# Environment # Environment
class GymEnvironment(Environment): class GymEnvironment(Environment):
def __init__(self, level: LevelSelection, frame_skip: int, visualization_parameters: VisualizationParameters, def __init__(self, level: LevelSelection, frame_skip: int, visualization_parameters: VisualizationParameters,
additional_simulator_parameters: Dict[str, Any] = None, seed: Union[None, int]=None, additional_simulator_parameters: Dict[str, Any] = {}, seed: Union[None, int]=None,
human_control: bool=False, custom_reward_threshold: Union[int, float]=None, human_control: bool=False, custom_reward_threshold: Union[int, float]=None,
random_initialization_steps: int=1, max_over_num_frames: int=1, **kwargs): random_initialization_steps: int=1, max_over_num_frames: int=1, **kwargs):
super().__init__(level, seed, frame_skip, human_control, custom_reward_threshold, super().__init__(level, seed, frame_skip, human_control, custom_reward_threshold,
@@ -218,10 +218,12 @@ class GymEnvironment(Environment):
env_class = gym.envs.registration.load(self.env_id) env_class = gym.envs.registration.load(self.env_id)
# instantiate the environment # instantiate the environment
if self.additional_simulator_parameters: try:
self.env = env_class(**self.additional_simulator_parameters) self.env = env_class(**self.additional_simulator_parameters)
else: except:
self.env = env_class() screen.error("Failed to instantiate Gym environment class %s with arguments %s" %
(env_class, self.additional_simulator_parameters), crash=False)
raise
else: else:
self.env = gym.make(self.env_id) self.env = gym.make(self.env_id)