上一篇博客中写到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提交自己的模型为社区做贡献。由于还未完善,这里就不过多介绍。