Created
April 30, 2016 06:31
-
-
Save JKCooper2/282c3236e4e2b299a9ac82c2d7d08e20 to your computer and use it in GitHub Desktop.
[Open AI] CartPole v0 - Random
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import logging | |
import os | |
import gym | |
# The world's simplest agent! | |
class RandomAgent(object): | |
def __init__(self, action_space): | |
self.action_space = action_space | |
def act(self, observation, reward, done): | |
return self.action_space.sample() | |
if __name__ == '__main__': | |
# You can optionally set up the logger. Also fine to set the level | |
# to logging.DEBUG or logging.WARN if you want to change the | |
# amount of outut. | |
logger = logging.getLogger() | |
logger.setLevel(logging.INFO) | |
env = gym.make('CartPole-v0') | |
agent = RandomAgent(env.action_space) | |
# You provide the directory to write to (can be an existing | |
# directory, but can't contain previous monitor results. You can | |
# also dump to a tempdir if you'd like: tempfile.mkdtemp(). | |
outdir = '/tmp/random-agent-results' | |
env.monitor.start(outdir, force=True) | |
episode_count = 100 | |
max_steps = 200 | |
reward = 0 | |
done = False | |
for i in xrange(episode_count): | |
ob = env.reset() | |
for j in xrange(max_steps): | |
action = agent.act(ob, reward, done) | |
ob, reward, done, _ = env.step(action) | |
if done: | |
break | |
# Dump result info to disk | |
env.monitor.close() | |
# Upload to the scoreboard. We could also do this from another | |
# process if we wanted. | |
logger.info("Successfully ran RandomAgent. Now trying to upload results to the scoreboard. If it breaks, you can always just try re-uploading the same results.") | |
# gym.upload(outdir, algorithm_id='random') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Testing system to check all is working correctly