Skip to content

Commit

Permalink
fix eval mode plot graph axis conflict
Browse files Browse the repository at this point in the history
  • Loading branch information
kengz committed Jan 6, 2019
1 parent 7b1735a commit 4d7244c
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 6 deletions.
2 changes: 1 addition & 1 deletion run_lab.py
Expand Up @@ -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)
Expand Down
6 changes: 6 additions & 0 deletions 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
Expand Down Expand Up @@ -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
Expand Down
7 changes: 2 additions & 5 deletions slm_lab/spec/spec_util.py
Expand Up @@ -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


Expand Down

0 comments on commit 4d7244c

Please sign in to comment.