摘要: OpenAI gym 入门
【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】
我的网站:潮汐朝夕的生活实验室
我的公众号:算法题刷刷
我的知乎:潮汐朝夕
我的github:FennelDumplings
我的leetcode:FennelDumplings
强化学习的挑战之一是训练智能体,这首先需要一个工作环境。
OpenAI Gym 是一个工具包,提供了广泛的模拟环境。安装方式如下
1 | pip install gym |
根据系统可能还要安装 Mesa OpenGL 实用程序(GLU),例如 Ubuntu 18.04 上还需要以下库。某些环境在渲染的时候需要。
1 | apt install libglu1-mesa |
下面的代码用 make() 创建一个 gym 已有的环境,可以用一下方法获取所有可用环境
1 | gym.envs.registry.all() |
这里我们用 CartPole-v1。CartPole-v1 的每个观测值是包含 4 个浮点数的 Numpy 数组:水平位置、速度、极角、角速度,调用 render() 可以显示环境
1 | env = gym.make("CartPole-v1") |
创建环境后,必须用 reset() 初始化,返回第一个观察值,观察值取决于环境的类型。
1 | obs = env.reset() |
环境可能采取的行动: env.action_space
,每个环境都带有 action_space
和 observation_space
对象。这些属性是 Space 类型,描述格式化的有效的行动和观察。
1 | print("action_space: {}".format(env.action_space)) |
打印结果如下
1 | action_space: Discrete(2) |
box 和 discrete 是最常见的空间, 可以从 gym.spaces
中获取。
1 | import gym |
step() 执行给定动作并返回四个值
- obs: 新观察
- reward: 无论做什么,每一步获得 1.0 奖励,因此目标是使小车尽可能长时间运行
- done: 整个回合结束时,此值为 True,之后必须重置环境
- info: 环境特定的字典,提供额外的信息
1 | obs, reward, done, info = env.step(env.action_space.sample()) |
使用完环境后,调用 close() 释放资源。
1 | env.close() |
完整测试代码
1 | import time |