OpenAI Gym学习(三):OpenAI Gym评估平台

96
huyuanda
0.1 2017.08.27 16:59* 字数 517

上一篇博客中写到OpenAI Gym的安装与基本使用,接下来介绍OpenAI Gym评估平台。

记录结果

OpenAI Gym平台可以很方便的测试自己的强化学习的模型,记录自己算法在环境中的表现,以及拍摄自己算法学习的视频,如下所示:

import gym
from gym import wrappers
env = gym.make('CartPole-v0')
env = wrappers.Monitor(env, '/tmp/cartpole-experiment-1')
for i_episode in range(20):
    observation = env.reset()
    for t in range(100):
        env.render()
        print(observation)
        action = env.action_space.sample()
        observation, reward, done, info = env.step(action)
        if done:
            print("Episode finished after {} timesteps".format(t+1))
            break

使用Monitor Wrapper包装自己的环境,在自己定义的路径下将记录自己模型的性能。支持将一个环境下的不同模型性能写在同一个路径下。

官网注册账号后,可以在个人页面上看到自己的API_Key,接下来可以将结果上传至OpenAI Gym:

import gym
gym.upload('/tmp/cartpole-experiment-1', api_key='YOUR_API_KEY')

然后得到如下结果:


打开链接会有当前模型在环境下的评估报告,并且还录制了小视频:

评估

每次上传结果,OpenAI Gym都会对其进行评估。

创建一个Github Gist将结果上传,或者直接在upload时传入参数:

import gym
gym.upload('/tmp/cartpole-experiment-1', writeup='https://gist.github.com/gdb/b6365e79be6052e7531e7ba6ea8caf23', api_key='YOUR_API_KEY')

评估将自动计算得分,并生成一个漂亮的页面。

在大多数环境中,我们的目标是尽量减少达到阈值级别的性能所需的步骤数。不同的环境都有不同的阈值,在某些环境下,尚不清楚该阈值是什么,此时目标是使最终的表现最大化。在cartpole这个环境中,阈值就是立杆能够直立的帧数。

Review

OpenAI Gym打算在每个环境下提供一个reviewed evaluations.,类似其他比赛的评审机制,不过OpenAI的态度并不是为了将每个环境变成比赛,而是方便大家更好 的进行协作研究。不过目前只有OpenAI的工作人员才能提交list,完善之后大家可以作为contributor提交自己的模型为社区做贡献。由于还未完善,这里就不过多介绍。

OpenAI Gym