OpenAI 创建的 Gym 是开源的 Python 库,通过提供一个用于在学习算法和环境之间通信的标准 API 以及一组符合该 API 的标准环境,来开发和比较强化学习(DL)算法。自推出以来,Gym 的 API 已经成为了领域标准。
目前,在 Gym 的项目主页,Star 量已经达到了 26.6k。
项目地址:https://github.com/openai/gym
近日,Gym 迎来了迄今为止最大的更新,包括 API 变化、环境变化和其他变化。
API 变化
首先是 API 变化,包括如下:
- env.reset 接受 3 个新的参数(options - 对于无再次初始化环境时控制课程学习等操作有用;seed - 未来环境 seed 可以传递到 reset 参数。老的 .seed() 方法被弃用,但考虑到向后兼容,该方法在 Gym 1.0 发布之前仍继续如常工作;infos - 当设置为 True,reset 将返回 obs, info。当前这种做法默认为 False,但将变成 Gym 1.0 版本的默认行为);
- 环境名称在注册期间不再需要一个版本,并将智能推荐类似名称;
- Vector 环境支持 info 中的 terminal_observation 并支持批处理操作空间。
环境变化
- blackjack 和 frozen lake 示例环境现在使用 PyGame 进行了更好的图形渲染;
- 机器人环境已移动到 gym-robotics 包中;
- bipedal walker 和 lunar lander 环境现在被合并称为一类;
- Atari 环境现在使用标准种子 API 了;
- 修复了 car_racing box2d 环境中的大错误修复,碰撞版本;
- 重构了所有 box2d 和 classic_control 环境,以使用 PyGame 而不是 Pyglet。因为 pyglet 的问题一直是 gym 项目生命周期中最常见的 GitHub 问题来源之一。
其他变化
- 移除 DiscreteEnv 类,内置环境将不再使用;
- 增加了大数类型提示;
- 支持 Python 3.10 版;
- 大量额外的代码重构、清理、错误消息改进和小错误修复;
- 所有环境文件的描述文件现在都有了明显改进。