Add Monitored wrapper (#434)

* Add WIP Monitored wrapper

* Remove irrelevant render after close monitor test

* py27 compatibility

* Fix test_benchmark

* Move Monitored out of wrappers __init__

* Turn Monitored into a function that returns a Monitor class

* Fix monitor tests

* Remove deprecated test

* Remove deprecated utility

* Prevent duplicate wrapping, add test

* Fix test

* close env in tests to prevent writing to nonexistent file

* Disable semisuper tests

* typo

* Fix failing spec

* Fix monitoring on semisuper tasks

* Allow disabling of duplicate check

* Rename MonitorManager

* Monitored -> Monitor

* Clean up comments

* Remove cruft
This commit is contained in:
Tom Brown
2016-12-23 16:21:42 -08:00
committed by GitHub
parent dc07c7d414
commit 2d44ed4968
18 changed files with 176 additions and 230 deletions

View File

@@ -13,6 +13,8 @@ import sys
import gym
# In modules, use `logger = logging.getLogger(__name__)`
from gym import wrappers
logger = logging.getLogger()
def main():
@@ -41,16 +43,16 @@ def main():
# run benchmark tasks
for task in benchmark.tasks:
logger.info("Running on env: {}".format(task.env_id))
env = gym.make(task.env_id)
for trial in range(task.trials):
env = gym.make(task.env_id)
training_dir_name = "{}/{}-{}".format(args.training_dir, task.env_id, trial)
env.monitor.start(training_dir_name)
env = wrappers.Monitor(training_dir_name)(env)
env.reset()
for _ in range(task.max_timesteps):
o, r, done, _ = env.step(env.action_space.sample())
if done:
env.reset()
env.monitor.close()
env.close()
logger.info("""Done running, upload results using the following command: