上一篇博客中寫到OpenAI Gym的安裝與基本使用,接下來介紹OpenAI Gym評估平臺。
記錄結(jié)果
OpenAI Gym平臺可以很方便的測試自己的強化學(xué)習(xí)的模型,記錄自己算法在環(huán)境中的表現(xiàn),以及拍攝自己算法學(xué)習(xí)的視頻,如下所示:
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包裝自己的環(huán)境,在自己定義的路徑下將記錄自己模型的性能。支持將一個環(huán)境下的不同模型性能寫在同一個路徑下。
在官網(wǎng)注冊賬號后,可以在個人頁面上看到自己的API_Key,接下來可以將結(jié)果上傳至OpenAI Gym:
import gym
gym.upload('/tmp/cartpole-experiment-1', api_key='YOUR_API_KEY')
然后得到如下結(jié)果:

打開鏈接會有當前模型在環(huán)境下的評估報告,并且還錄制了小視頻:

評估
每次上傳結(jié)果,OpenAI Gym都會對其進行評估。

創(chuàng)建一個Github Gist將結(jié)果上傳,或者直接在upload時傳入?yún)?shù):
import gym
gym.upload('/tmp/cartpole-experiment-1', writeup='https://gist.github.com/gdb/b6365e79be6052e7531e7ba6ea8caf23', api_key='YOUR_API_KEY')
評估將自動計算得分,并生成一個漂亮的頁面。
在大多數(shù)環(huán)境中,我們的目標是盡量減少達到閾值級別的性能所需的步驟數(shù)。不同的環(huán)境都有不同的閾值,在某些環(huán)境下,尚不清楚該閾值是什么,此時目標是使最終的表現(xiàn)最大化。在cartpole這個環(huán)境中,閾值就是立桿能夠直立的幀數(shù)。
Review
OpenAI Gym打算在每個環(huán)境下提供一個reviewed evaluations.,類似其他比賽的評審機制,不過OpenAI的態(tài)度并不是為了將每個環(huán)境變成比賽,而是方便大家更好 的進行協(xié)作研究。不過目前只有OpenAI的工作人員才能提交list,完善之后大家可以作為contributor提交自己的模型為社區(qū)做貢獻。由于還未完善,這里就不過多介紹。