Gym小记(六)

试用gym wrappers

        gym wrappers用于将环境进行打包,我们可以使用这个模块来记录自己的算法在环境中的表现,并拍摄自己算法学习的视频,示例如下:

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()
                s,r,done,info=env.step(action)
                if done:
                        print("Episode finished after {} timestep".format(t+1))
                        break

        其中我们仅仅比平时多了一个对env的封装wrappers.Monitor,便会在我们所指定的目录汇总记录我们算法的性能。我们可以直接看 Monitor类的定义,从而加深对这个类的理解。查看指定目录:


        可见,文件夹中包含了两种格式的文件,一种是.json文件格式,一种是.mp4格式文件。.mp4格式就不用多说,如果没有合适的视频查看器,那可以用浏览器打开。下面介绍一下.json格式文件。

        JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,这些特性使得JSON成为理想的数据交换语言,它易于阅读和编写,同时易于机器解析和生成。

        JSON有两种基础结构:

        1)”名称/值“对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组(associative array)。

        2)值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

        下面我们打开openaigym.episode_batch.0.15433.stats.json文件来看一下:


        上面是我整理了之后的样子,因为它本身是所有数据都在一行的,所以截屏的话只能看见前面的数据,于是我就给它分行了。

        从示例中可以看出JSON的两种基础数据结构,比如episode_types是名称,后面的["t","t","t","t","t","t","t","t","t","t","t","t","t","t","t","t","t","t","t","t","t","t"...]就是值的有序列表。

        该文件中记录的是我们训练过程中的各种数据,此外,另外两个文件openaigym.manifest.0.15433.manifest.json和openaigym.video.0.15433.video000000.meta.json则分别如下图所示:

        1)openaigym.manifest.0.15433.manifest.json:


        2)openaigym.video.0.15433.video000000.meta.json:


        了解完gym.wrappers.Monitor所记录的文件之后,我们继续考虑如何将这些结果上传到OpenAI Gym:

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

        这样便将结果上传到了OpenAI Gym。不过upload函数现在暂时不能用了:


        NotImplementedError,所以这样看来我们暂时是不能用upload功能将我们的代码上传到OpenAI Gym咯~。

        但是我们可以看看以前用upload得到的结果:

[2017-05-11 00:11:13,592] [CartPole-v0] Uploading 20 episodes of training data
[2017-05-11 00:11:21,614] [CartPole-v0] Uploading videos of 3 training episodes (8459 bytes)
[2017-05-11 00:11:33,060] [CartPole-v0] Creating evaluation object from /tmp/cartpole-experiment-1 with learning curve and training video
[2017-05-11 00:11:33,669] 
****************************************************
You successfully uploaded your evaluation on CartPole-v0 to
OpenAI Gym! You can find it at:

    https://gym.openai.com/evaluations/eval_mVPNxudETYOY9eCCwwWzw

****************************************************
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值