From 4d7244c9bdd1752fb04026cc122e014ce276bf42 Mon Sep 17 00:00:00 2001 From: kengz Date: Sun, 6 Jan 2019 14:23:23 -0800 Subject: [PATCH] fix eval mode plot graph axis conflict --- run_lab.py | 2 +- slm_lab/env/base.py | 6 ++++++ slm_lab/spec/spec_util.py | 7 ++----- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/run_lab.py b/run_lab.py index 7b6c75aea..905f5ace4 100644 --- a/run_lab.py +++ b/run_lab.py @@ -58,7 +58,7 @@ def run_old_mode(spec_file, spec_name, lab_mode): spec = spec_util.override_enjoy_spec(spec) Session(spec, info_space).run() elif lab_mode == 'eval': - spec = spec_util.override_eval_spec(spec, num_eval_epi=analysis.NUM_EVAL_EPI) + spec = spec_util.override_eval_spec(spec) Session(spec, info_space).run() util.clear_periodic_ckpt(prepath) # cleanup after itself analysis.analyze_eval_trial(spec, info_space, predir) diff --git a/slm_lab/env/base.py b/slm_lab/env/base.py index f39619a02..a8bb2845d 100644 --- a/slm_lab/env/base.py +++ b/slm_lab/env/base.py @@ -1,5 +1,6 @@ from abc import ABC, abstractmethod from gym import spaces +from slm_lab.experiment import analysis from slm_lab.lib import logger, util from slm_lab.lib.decorator import lab_api import numpy as np @@ -100,6 +101,11 @@ def __init__(self, spec, e=None, env_space=None): 'save_frequency', 'reward_scale', ]) + if util.get_lab_mode() == 'eval': + # override for eval, offset so epi is 0 - (num_eval_epi - 1) + logger.info(f'Override max_tick for eval mode to {analysis.NUM_EVAL_EPI} epi') + self.max_tick = analysis.NUM_EVAL_EPI - 1 + self.max_tick_unit = 'epi' # set max_tick info to clock self.clock.max_tick = self.max_tick self.clock.max_tick_unit = self.max_tick_unit diff --git a/slm_lab/spec/spec_util.py b/slm_lab/spec/spec_util.py index 02d1ea999..fed3764ea 100644 --- a/slm_lab/spec/spec_util.py +++ b/slm_lab/spec/spec_util.py @@ -160,14 +160,11 @@ def override_enjoy_spec(spec): return spec -def override_eval_spec(spec, num_eval_epi=100): +def override_eval_spec(spec): for agent_spec in spec['agent']: if 'max_size' in agent_spec['memory']: agent_spec['memory']['max_size'] = 100 - for env_spec in spec['env']: - # evaluate by episode; offset so epi is 0 - (num_eval_epi - 1) - env_spec['max_tick'] = num_eval_epi - 1 - env_spec['max_tick_unit'] = 'epi' + # evaluate by episode is set in env clock init in env/base.py return spec