- 深度强化学习理论与实践
- 龙强 章胜编著
- 872字
- 2024-12-27 22:25:06
1.3.3 Gym的环境描述和案例
Gym中环境的调用主要通过接口函数进行。接口函数的主要功能包括生成环境、初始化环境、环境交互、渲染画面、指定随机数种子、关闭环境。以下对这些环境接口函数逐一介绍。
1.生成环境
生成环境的命令如下:
其作用是生成一个模拟环境。输入参数id是环境ID,为str类型;返回值env是一个具体的环境实例,为Env类型。
环境ID是OpenAI Gym提供的环境的ID,可以在OpenAI Gym网站的Environments中查询。例如,例1-2中提到的倒立摆系统的环境ID是CartPole-v1,这里v1是版号。
2.初始化环境
初始化环境的命令如下:
其作用是在一局交互开始时将环境状态初始化。返回值state是环境的初始状态,其类型由状态空间的类型决定。
3.环境交互
环境交互的命令如下:
其作用是在环境接受智能体向其施加的一个动作以后,环境向前演化一个时间步,改变环境状态,并给智能体一个奖励信息。输入值action是智能体向环境施加的动作,为object类型;输出值包括state、reward、done和info,分别表示转化后的环境状态、环境给智能体的奖励信息、一局是否结束的标识和交互过程中一些必要的日志信息。
4.渲染画面
渲染画面的命令如下:
其作用是可视化环境交互过程。Gym支持的“渲染模式”根据环境的不同而不同,也有不支持渲染的环境。常用的渲染模式见表1-2。
表1-2 常用渲染模式
5.指定随机数种子
指定随机数种子的命令如下:
其作用是为计算机产生伪随机数指定一个随机数种子,输入值seed即为随机数种子,为int类型,输出值为以seed为种子的随机数列表。
6.关闭环境
结束环境的命令如下:
其作用是关闭当前环境,主要在需要渲染环境的情况下使用。
以下以CartPole-v1环境为例,将所有接口函数融入一个程序中,对该环境进行一次完整的运行,代码如下:
Gym的所有环境脚本都是开源的,读者如果想要更深入地了解一个环境的运行机理、各状态维度的意义、各动作维度的意义等信息,则可以直接阅读该环境的脚本代码。可以通过两种方式找到环境的源代码,列举如下:
(1)安装Gym以后,进入D:\Anaconda3\Lib\site-packages\gym\envs文件夹,Gym所有环境的源代码都保存在这个文件夹中。
(2)Gym源代码托管在著名的程序托管网站GitHub上,网址为https://github.com/openai/gym。可以在线查看Gym的源代码,也可以直接通过Download ZIP按钮将源代码下载到本地计算机。