第二节 OpenAI Gym接口概要

Agent和环境之间的共同接口概要

第二节 OpenAI Gym接口概要_第1张图片
该公共接口由“OpenAI Gym”的“Env”类保持。“Env” 类是将强化学习的“环境”封装起来的类。主要的方法和性质如下所示。

一:生成环境

env = gym.make(id)
'''
gym.make(id)
	说明:生成环境
	参数:Id(str类型)  环境ID
	返回值:env(Env类型)  环境
	
	环境ID是OpenAI Gym提供的环境的ID,可以在OpenAI Gym网站的Environments中确认
	例如,如果是“CartPole”环境,则ID是“CartPole-v1”。返回“Env”对象作为返回值
'''

二:初始化环境

state = env.reset()
'''
env.reset()
	说明:重置环境
	返回值:state(object类型) episode 的最初状态
	
	在episode 开始时调用它,作为返回值返回episode 最初的状态
	episode 最初“状态”的类型由属性“observation_space”决定
'''

三:环境交互

state, reward, done, info = env.step(action)
'''
env.step(action)
	说明:环境执行一步动作
	参数:action(object 类型) 动作
	返回值:results(tuple 类型) (下一状态,报酬,episode 是否完成,日志信息)
	
	将“动作”传递给环境,返回值返回“下一个状态”(object)、“报酬”(float)、“ episode 是否完成”(bool)、“日志信息”(dict)
	传递给环境的“动作”类型,由属性“action_space”决定
'''

四:渲染画面

env.render(mode='human')
'''
env.render(mode='human')
	说明:渲染环境画面
	参数:mode(str类型) 渲染模式
	返回值:对应渲染模式的返回值
'''

支持的“渲染模式”根据环境不同而不同。也有不支持渲染的环境。一般有以下几种渲染模式:

渲染模式参数 说明
human 在人类显示器或终端上渲染
rgb_array 返回像素图像的RGB阵列作为返回值
ansi 将文本作为返回值返回

五:指定随机种子

env.seed(seed=None)
'''
env.seed(seed=None)
	说明:指定随机数种子
	参数:seed(int 类型) 随机种子
	返回值:seeds(list 类型) 在环境中使用的随机数种子列表
	用env.seed()指定环境的随机数种子。如果想要训练的再现性,或者想要根据不同的环境使用不同的随机数种子,就可以使用该方法
'''

六:结束环境

env.close()
'''
env.close()
	说明:终止当前环境
'''

七:代码总结

import gym

# 生成环境
env = gym.make('CartPole-v1')
# 环境初始化
state = env.reset()
# 循环交互
while True:
    # 渲染画面
    env.render()
    # 从动作空间随机获取一个动作
    action = env.action_space.sample()
    # agent与环境进行一步交互
    state, reward, done, info = env.step(action)
    print('reward:', reward)
    # 判断当前episode 是否完成
    if done:
        print('done')
        break
# 环境结束
env.close()

注:env.action_space.sample()是根据动作空间的类型“action_space”获取随机动作的方法。

你可能感兴趣的:(强化学习Gym环境相关知识)