Gym 发布说明¶
0.26.2¶
发布于 2022-10-04 - GitHub - PyPI
发布说明
这是又一个非常小的错误修复版本。
错误修复
- 由于 `reset` 现在返回 `(obs, info)`,在向量环境中,这导致最终 `step` 的 info 被覆盖。现在,最终的观测和 info 作为 "final_observation" 和 "final_info" 包含在 info 中。@pseudo-rnd-thoughts
- 在尝试渲染时未指定 `render_mode` 会添加警告。@younik
- 更新 Atari 预处理,使封装器可以被序列化。@vermouth1992
- Github CI 已强化,使 CI 只有读取权限。@sashashura
- 澄清并修复 `GraphInstance` 中的拼写错误。@ekalosak
0.26.1¶
发布于 2022-09-16 - GitHub - PyPI
发布说明
这是 0.26.0 的一个非常小的错误修复版本。
错误修复
- #3072 - 之前,即使只使用了 `mujoco-py`,`mujoco` 仍然是一个必需的模块。这已得到修复,现在只允许安装和使用 `mujoco-py`。@YouJiacheng
- #3076 - 如果未指定 `env.render_mode`,`PixelObservationWrapper` 会引发异常。@vmoens
- #3080 - 修复了 `CarRacing` 中车轮颜色不正确的错误。@foxik
- #3083 - 修复了 BipedalWalker 中如果智能体向后移动,渲染数组大小会不同的错误。@younik
拼写
0.26.0¶
发布于 2022-09-06 - GitHub - PyPI
v0.26.0 发布说明
此版本旨在成为核心 API 主要更改的最后一版。所有先前“关闭”的基础 API 更改(step 的终止/截断、reset 的 info、无 seed 函数、渲染模式由初始化决定)现在都将默认启用。我们仍然计划对 Gym 本身进行破坏性更改,但仅限于非常易于升级的部分(环境和封装器),以及不经常使用的部分(向量 API)。一旦这些方面稳定下来,我们将发布正式的 1.0 版本并遵循语义版本控制。此外,除非此版本出现严重问题导致我们必须发布补丁版本,否则这将是 Gym 在一段时间内的最后一次发布。
如果您一直在等待 Gym 的“稳定”版本来升级您的项目,考虑到所有正在进行的更改,这就是您所等待的版本。
我们还想说,我们非常感谢社区对我们的耐心,因为我们在这段接管 Gym 维护并对核心 API 进行所有这些重大更改的旅程中。我们感谢您的耐心和支持,但希望从现在开始,所有更改都将是更小的。
破坏性向后不兼容
这些更改适用于所有 **gym** 的内部封装器和环境,但对于未更新的环境,我们提供了 `EnvCompatibility ` 封装器,供用户将旧版 gym v21 / 22 环境转换为新的核心 API。此封装器可以通过 `apply_api_compatibility ` 参数轻松应用于 `gym.make` 和 `gym.register`。
- `Step` 终止/截断 - `Env.step` 函数现在返回 5 个值,而不是之前的 4 个值(`observations, reward, termination, truncation, info`)。更多细节的博客文章将很快发布,以解释此决定。@arjun-kg
- Reset info - `Env.reset` 函数返回两个值(`obs` 和 `info`),对于 gym 封装器和环境,没有 `return_info` 参数。这对于一些为每个动作提供动作掩码信息的环境很重要,这在 reset 中是不可能实现的。@balisujohn
- 无 `Seed` 函数 - 尽管 `Env.seed` 是一个有用的函数,但它几乎只用于剧集的开始,并已添加到 `gym.reset(seed=...)` 中。此外,对于像 Atari 这样利用外部随机数生成器的多个环境,除了 `reset` 之外,无法在任何时候设置种子。因此,`seed` 不再期望在 gym 环境中发挥作用,并已从所有 gym 环境中移除。@balisujohn
- 渲染 - 通常只使用单一渲染模式,为了帮助打开和关闭渲染窗口,我们已将 `Env.render` 更改为不接受任何参数,因此所有渲染参数都可以作为环境构造函数的一部分,例如 `gym.make("CartPole-v1", render_mode="human")`。有关新 API 的更多详细信息,请参阅博客文章。@younik
主要更改
- 渲染模式 - 在 `v25` 中,渲染模式的含义发生了变化,即“rgb_array”返回渲染帧列表,“single_rgb_array”返回单个帧。此版本已**恢复**此更改,“rgb_array”的含义与之前相同,即返回单个帧,并新增了“rgb_array_list”模式,返回 RGB 数组列表。通过在 `gym.make` 期间应用的封装器实现返回渲染观测列表的功能。#3040 @pseudo-rnd-thoughts @younik
- 添加了使用 `moviepy` 渲染 RGB 帧列表的 `save_video`,并更新 `RecordVideo` 以使用此函数。这移除了对录制 `ansi` 输出的支持。#3016 @younik
- `RandomNumberGenerator` 函数:`rand`、`randn`、`randint`、`get_state`、`set_state`、`hash_seed`、`create_seed`、`_bigint_from_bytes` 和 `_int_list_from_bigint` 已被移除。@balisujohn
- 将 `ale-py` 版本提升至 `0.8.0`,与新的核心 API 兼容。
- 添加了 `EnvAPICompatibility` 封装器。@RedTachyon
次要更改
- 改进了 `Sequence`、`Graph` 和 `Text` 样本掩码。@pseudo-rnd-thoughts
- 改进了 gym `make` 和 `register` 的类型提示,其中 `entry_point` 是 `register` 的必需参数。#3041 @pseudo-rnd-thoughts
- 将所有 URL 更改为新的 gym 网站 https://www.gymlibrary.dev/。@FieteO
- 修复了 mujoco 离屏渲染中权重和高度值大于 500 的问题。#3044 @YouJiacheng
- 允许 toy_text 环境在无头机器上渲染。#3037 @RedTachyon
- 重命名了 mujoco 游泳者环境中的电机。#3036 @lin826
0.25.2¶
发布于 2022-08-18 - GitHub - PyPI
v0.25.2 发布说明
这是一个相当小的错误修复版本。
错误修复
- 移除了 step 兼容性函数中 info 内对 `_TimeLimit.truncated` 的要求。这使得 step 与 Envpool 兼容。@arjun-kg
- 由于 `Dict` 空间在扁平化时顺序很重要,更新了 `__eq__` 以考虑 `.keys()` 的顺序。@XuehaiPan
- 允许 `CarRacing` 环境被序列化。更新了所有 gym 环境以正确序列化。@RedTachyon
- 使用整数对 `Dict` 和 `Tuple` 空间进行种子设置可能导致低配置计算机因需要 8Gb 内存而挂起。更新了使用整数进行种子设置的方式,使其不需要唯一的子种子(子种子冲突很少见)。对于所有子空间都需要唯一子种子的用户,我们建议使用包含子种子的字典或元组。@olipinski
- 修复了新渲染 API 的元类实现,以允许自定义环境也使用元类。@YouJiacheng
更新
- 简化了步进兼容性函数,使其更易于调试。使用旧的步进 API 的时间限制封装器在 `terminated` 和 `truncated` 都为真时优先选择 `terminated`。这是因为旧的 `done` 步进 API 只能编码 3 种状态(无法编码 `terminated=True` 和 `truncated=True`),因此我们必须仅编码为 `terminated=True` 或 `truncated=True`。@pseudo-rnd-thoughts
- 添加 Swig 作为依赖项。@kir0ul
- 为 `render_mode` 和 `metadata` 添加类型注解。@bkrl
0.25.1¶
发布于 2022-07-26 - GitHub - PyPI
发布说明
- 为 CliffWalking 环境添加了渲染。@younik
- 由于难以同时支持旧 API 和新 API,`PixelObservationWrapper` 仅支持新的渲染 API。如果用户使用旧 API,则会发出警告。@vmoens
错误修复
- 还原 wrapper.FrameStack 上的错误修改。@ZhiqingXiao
- 修复山地车环境的重置边界。@psc-g
- 移除了被跳过的测试,这些测试导致错误未能被捕获。@pseudo-rnd-thoughts
- 为没有元数据的环境添加了向后兼容性。@pseudo-rnd-thoughts
- 修复了 `BipedalWalker` 对 RGB 数组的渲染问题。@1b15
- 修复了 `PixelObsWrapper` 在使用新渲染时的错误。@younik
拼写错误
- 重新阐述了 Lunar Lander 环境中观测的定义。@EvanMath
- `gym/spaces/dict.py` 中的顶部文档字符串。@Ice1187
- `humanoidstandup_v4.py`、`mujoco_env.py` 和 `vector_list_info.py` 中有几处拼写错误。@timgates42
- 被动环境检查器中的拼写错误。@pseudo-rnd-thoughts
- Swimmer 旋转中的拼写错误。@lin826
0.25.0¶
发布于 2022-07-13 - GitHub - PyPI
发布说明
此版本最终引入了过去一年多以来计划的所有新 API 更改,这些更改将在后续版本中默认启用。此后,Gym 的开发应该会大幅度顺畅。此版本还修复了 0.24.0 和 0.24.1 中存在的重大错误,我们强烈不建议使用这些版本。
API 更改
- `Step` - 大多数深度强化学习算法的实现都是不正确的,因为理论和实践之间存在一个重要区别,即 `done` 不等同于 `termination`。因此,我们修改了 `step` 函数,使其返回五个值:`obs, reward, termination, truncation, info`。这些更改的完整理论和实践原因(以及示例代码更改)将在即将发布的博客文章中解释。此更改的目标是向后兼容(目前),如果遇到问题,请在 GitHub 或 Discord 上报告。@arjun-kg
- `Render` - 渲染 API 已更改,模式必须在 `gym.make` 期间使用关键字 `render_mode` 指定,此后渲染模式将固定。有关更多详细信息,请参阅 https://younis.dev/blog/2022/render-api/ 和 #2671。这带来了额外的更改:
- 使用 `render_mode="human"` 时,您无需调用 `.render()`,渲染将在 `env.step()` 时自动发生。
- 使用 `render_mode="rgb_array"` 时,`.render()` 会弹出自上次 `.reset()` 以来渲染的帧列表。
- 使用 `render_mode="single_rgb_array"` 时,`.render()` 返回单个帧,与之前相同。
- `Space.sample(mask=...)` 允许在采样动作时使用掩码,以启用/禁用某些动作的随机采样。我们建议开发者将其添加到 `reset(return_info=True)` 和 `step` 返回的 `info` 参数中。有关掩码或各个空间的示例实现,请参阅 #2906。我们已在出租车环境中添加了此功能的示例版本。@pseudo-rnd-thoughts
- 为使用图样式观测或动作空间的环境添加了 `Graph`。目前,节点和边空间只能是 `Box` 或 `Discrete` 空间。@jjshoots
- 为强化学习添加了 `Text` 空间,用于智能体之间的通信和动态长度消息(否则可以使用 `MultiDiscrete`)。@ryanrudes @pseudo-rnd-thoughts
错误修复
- 修复了赛车终止问题,即如果智能体完成最后一圈,环境会通过截断而不是终止结束。这导致赛车版本提升到 v2,并移除了离散赛车,转而支持 `gym.make("CarRacing-v2", continuous=False)`。@araffin
- 在 `v0.24.0` 中,`opencv-python` 是项目的一个意外要求。这已还原。@KexianShen @pseudo-rnd-thoughts
- 更新了 `utils.play`,使其在环境指定 `keys_to_action` 时自动使用该数据。@Markus28
- 在渲染21点环境时,修复了渲染会改变庄家顶部纸牌的错误。@balisujohn
- 更新了 mujoco 文档字符串,以反映被意外覆盖的更改。@Markus28
其他
- 整个项目部分使用了 pyright 进行类型提示(没有项目文件被类型提示器忽略)。@RedTachyon @pseudo-rnd-thoughts (未来工作将为核心 API 添加严格类型提示)
- 出租车环境添加了动作掩码(由于向后兼容,未提升版本)。@pseudo-rnd-thoughts
- `Box` 空间形状推断允许 `high` 和 `low` 标量自动设置为 `(1,)` 形状。对识别标量进行了少量更改。@pseudo-rnd-thoughts
- 在经典控制环境中添加了选项支持,以修改环境初始随机状态的边界。@psc-g
- `RecordVideo` 封装器正在被弃用,不支持新渲染 API 的 `TextEncoder`。计划是用一个函数替换 `RecordVideo`,该函数将从环境中接收帧列表,并使用 `MoviePy` 自动将它们渲染为视频。@johnMinelli
- gym `py.Dockerfile` 通过多项优化从 2Gb 优化到 1.5Gb。@TheDen
0.24.1¶
发布于 2022-06-07 - GitHub - PyPI
这是 0.24.0 版本的一个错误修复版本。
已修复错误
- 替换了 V24 中引入的环境检查器,使得环境检查器在创建(make)过程中不会调用 `step` 和 `reset`。新版本是一个封装器,它将在 `step` 和 `reset` 首次调用时观察它们返回的数据,并根据环境检查器进行检查。@pseudo-rnd-thoughts
- 修复了 MuJoCo v4 参数键回调、渲染器中环境关闭以及 mujoco_rendering 关闭方法的问题。@rodrigodelazcano
- 移除了注册中冗余的警告。@RedTachyon
- 从 MuJoCo xml 文件中移除了数学运算。@quagla
- 添加了对反序列化旧版 `spaces.Box` 的支持。@pseudo-rnd-thoughts
- 修复了 mujoco 环境动作和观测空间文档字符串表格。@pseudo-rnd-thoughts
- 禁用封装器访问 `_np_random` 属性,并且 `np_random` 现在被转发到环境。@pseudo-rnd-thoughts
- 重写 setup.py 以添加一个“testing”元依赖组。@pseudo-rnd-thoughts
- 修复了 `rescale_action` 封装器中的文档字符串。@gianlucadecola
0.24.0¶
发布于 2022-05-25 - GitHub - PyPI
主要更改
- 添加了使用新的 deepmind mujoco 2.2.0 模块的 v4 mujoco 环境。
这可以通过 `pip install gym[mujoco]` 安装,旧的绑定仍然可以
通过 `v3` 环境和 `pip install gym[mujoco-py]` 使用。
这些新的 `v4` 环境应该与 `v3` 具有相同的训练曲线。对于 Ant,我们发现有一个
在 `v3` 中未应用的接触参数可以在 `v4` 中启用,但发现其性能显著
更差,详见评论。@rodrigodelazcano - 向量环境的 `step` 的 `info` API 已更改,以便未来支持硬件加速。
请参阅此 PR,了解修改后的 `info` 样式,该样式现在使用字典而不是环境信息列表。
如果您仍然希望使用列表 info 样式,请使用 `VectorListInfo` 封装器。@gianlucadecola - 在 `gym.make` 时,会运行 gym `env_checker`,其中包括调用环境的 `reset` 和 `step` 以检查环境是否
符合 gym API。要禁用此功能,请运行 `gym.make(..., disable_env_checker=True)`。@RedTachyon - 重新添加了在 v0.22 中意外移除的 `gym.make("MODULE:ENV")` 导入样式。@arjun-kg
- `Env.render` 现在强制执行顺序,要求在调用 `Env.render` 之前必须调用 `Env.reset`。如果这是必需的
功能,则将 `OrderEnforcer` 封装器的 `disable_render_order_enforcing` 设置为 `True`。@pseudo-rnd-thoughts - 为月球着陆器环境添加了风和湍流,这在默认情况下是关闭的,
请使用 `wind_power` 和 `turbulence` 参数。@virgilt - 改进了 `play` 函数,允许传递多个键盘字母而不是 ASCII 值。@Markus28
- 为大多数仓库添加了 Google 风格的 pydoc 字符串。@pseudo-rnd-thoughts @Markus28
- 通过 `gym.make("CarRacing-v1", continuous=False)` 添加了离散赛车环境版本。
- Pygame 现在是 box2d 和经典控制环境的可选模块,仅在渲染时才需要。
因此,请使用 `pip install gym[box2d]` 或 `pip install gym[classic_control]` 安装 pygame。@gianlucadecola @RedTachyon - 修复了批处理空间(用于 VectorEnv)中的错误,该错误导致忽略了原始空间的种子。@pseudo-rnd-thoughts
- 添加了 `AutoResetWrapper`,当 `Env.step` 完成为 True 时,它会自动调用 `Env.reset`。@balisujohn
次要更改
- BipedalWalker 和 LunarLander 的观测空间具有非无限的上限和下限。@jjshoots
- 将 ALE-py 版本提升至 `0.7.5`。
- 通过不渲染屏幕外的多边形,提高了赛车游戏的性能。@andrewtanJS
- 修复了赛车中转向指示器为黑色而非红/白色的问题。@jjshoots
- 修复了 `VecEnvWrapper` 中的错误,使其将方法调用转发到环境。@arjun-kg
- 移除了 Box2d 上不必要的 try except,这样如果 `Box2d` 未正确安装,则会显示更有帮助的错误。@pseudo-rnd-thoughts
- 简化了 `gym.registry` 后端。@RedTachyon
- 通过回溯 Python 3.7+ 模块重新添加了 Python 3.6 支持。这未经过测试,也与 mujoco 环境不兼容。@pseudo-rnd-thoughts
0.23.1¶
发布于 2022-03-11 - GitHub - PyPI
此版本包含一些小的错误修复,并且没有破坏性更改。
- 使 `VideoRecorder` 向后兼容 `gym<0.23`,由 @vwxyzjn 在 #2678 中实现。
- 修复了 pygame 事件处理问题(这应该能修复 Windows 和 Jupyter Notebook 中的支持),由 @andrewtanJS 在 #2684 中实现。
- 由 @micimize 在 https://github.com/openai/gym/p 中将 py.typed 添加到 package_data。
- 修复了 CI 中大约 1500 个警告。@pseudo-rnd-thoughts
- 现在正确显示弃用警告。@vwxyzjn
- 修复了移除 striker 和 thrower 的问题。@RushivArora
- 修复了小的依赖警告错误。@ZhiqingXiao
0.23.0¶
发布于 2022-03-04 - GitHub - PyPI
此版本包含许多错误修复和少量更改。
破坏性更改
- 在渲染破坏性更改之前标准化了渲染元数据变量。@trigaten
- 移除了已弃用的 monitor 封装器和相关的废弃代码。@gianlucadecola
- 未使用的 striker 和 thrower MuJoCo 环境已移至 https://github.com/RushivArora/Gym-Mujoco-Archive。@RushivArora
许多小的错误修复(@vwxyzjn , @RedTachyon , @rusu24edward , @Markus28 , @dsctt , @andrewtanJS , @tristandeleu , @duburcqa)
0.22.0¶
发布于 2022-02-17 - GitHub - PyPI
v0.22 发布说明
此版本代表了 Gym 迄今为止最大规模的一组更改,并朝着此处概述的 1.0 计划迈出了巨大一步:#2524
Gym 现在拥有了一个全新的综合文档网站:https://www.gymlibrary.ml/ !
API 更改
-
`Env.reset` 现在接受三个新参数
-
`options`:可用于控制课程学习等,而无需重新初始化环境,这可能开销很大(@RedTachyon)
-
`seed`:将来可以将环境种子传递给此重置参数。旧的 `.seed()` 方法正在被弃用,转而使用此方法,但为了向后兼容,在 1.0 版本发布之前它将继续像以前一样运行(@RedTachyon)
-
`return_info`:当设置为 `True` 时,重置将返回 obs 和 info。这目前默认为 `False`,但在 Gym 1.0 中将成为默认行为(@RedTachyon)
-
环境名称在注册时不再需要版本号,并且会建议智能的相似名称(@kir0ul, @JesseFarebro)
-
向量环境现在支持 `info` 中的 `terminal_observation` 并支持批处理动作空间(@vwxyzjn, @tristandeleu)
环境更改
- 21点和冰湖 toy_text 环境现在使用 PyGame 进行了漂亮的图形渲染(@1b15)
- 将机器人环境移至 gym-robotics 包(@seungjaeryanlee, @Rohan138, @vwxyzjn)(根据 #2456 中的讨论 (comment))
- 双足步行器和月球着陆器环境已合并为一个类(@andrewtanJS)
- Atari 环境现在使用标准种子 API(@JesseFarebro)
- 修复了 car_racing box2d 环境中的重大错误,并提升了版本(@carlosluis, @araffin)
- 重构了所有 box2d 和 classic_control 环境,使其使用 PyGame 而不是 Pyglet,因为 Pyglet 的问题一直是 Gym 项目生命周期中最常见的 GitHub 问题来源之一(@andrewtanJS)
其他更改
- 移除了 DiscreteEnv 类,内置环境不再使用它(@carlosluis)
- 添加了大量的类型提示(@ikamensh, @RedTachyon)
- 支持 Python 3.10
- 大量的额外代码重构、清理、错误消息改进和小型错误修复(@vwxyzjn, @Markus28, @RushivArora, @jjshoots, @XuehaiPan, @Rohan138, @JesseFarebro, @Ericonaldo, @AdilZouitine, @RedTachyon)
- 所有环境文件顶部现在都有了大幅改进的自述文件(文档网站会自动从中提取)
- 作为种子更改的一部分,Gym 的 RNG 已修改为使用 `np.random.Generator`,因为 RandomState API 已被弃用。`randint`、`rand`、`randn` 方法分别被 `integers`、`random` 和 `standard_normal` 替代。因此,随机数生成器已从 `MT19937` 更改为 `PCG64`。
**完整更新日志**:v0.21.0...0.22.0
v0.21.0¶
发布于 2021-10-02 - GitHub - PyPI
v0.21.0 发布说明
- 修复了上次发布和升级到 ALE-Py 导致损坏的旧 Atari 入口点(@JesseFarebro)
- Atari 环境现在提供了更清晰的错误消息和警告(@JesseFarebro)
- 添加了一个新的插件系统,以便更容易地包含第三方环境(@JesseFarebro)
- Atari 环境现在使用新的插件系统,以防止名称冲突和其他问题(@JesseFarebro)
- `pip install gym[atari]` 不再分发 ALE(所使用的 Atari 模拟器)运行各种游戏所需的 Atari ROM。将 ROM 安装到 ALE 最简单的方法一直是使用 AutoROM。Gym 现在有一个连接 AutoROM 的钩子,以便更轻松地进行 CI 自动化,通过使用 `pip install gym[accept-rom-license]` 调用 AutoROM 将 ROM 添加到 ALE。您可以使用简写 `gym[atari, accept-rom-license]` 安装整个套件。请注意,如名称所述,安装 `gym[accept-rom-license]` 即表示您确认拥有安装 ROM 的相关许可。(@JesseFarebro)
- 修复了在使用旧版 Gym 训练的、使用 box 动作空间的环境加载已保存策略时意外发生的破坏性更改。(@RedTachyon)
- 摆(Pendulum)的物理逻辑已进行小幅修复,版本已提升至 v1(@RedTachyon)
- 测试已重构,变得更有序(@RedTachyon)
- Dict 空间现在拥有标准的字典辅助方法(@Rohan138)
- 环境属性现在会转发到封装器(@tristandeleu)
- Gym 现在正确强制要求在首次步进之前调用 reset(@ahmedo42)
- 错误消息正确地管道输出到 stderr(@XuehaiPan)
- 修复视频保存问题(@zlig)
此外,Gym 正在编制一份第三方环境列表,以纳入我们正在开发的新文档网站。请提交缺失环境的 PR:https://github.com/openai/gym/blob/master/docs/third_party_environments.md
**完整更新日志**:v0.20.0...v0.21.0
v0.20.0¶
发布于 2021-09-14 - GitHub - PyPI
v0.20.0 发布说明
主要更改
- 将 Atari-Py 依赖项替换为 ALE-Py 并提升了所有版本。这是一次包含许多更改的大规模升级,请参阅完整解释器(@JesseFarebro)
- 请注意,ALE-Py 不包含 ROM。不过,您可以使用 `AutoROM` 通过两行 bash 命令安装 ROM(`pip3 install autorom` 然后 `autorom`),请参阅 https://github.com/PettingZoo-Team/AutoROM。这是 CI 等推荐的方法。
破坏性更改和新功能
- 添加 `RecordVideo` 封装器,弃用 `monitor` 封装器,转而使用 `RecordVideo` 和 `RecordEpisodeStatistics` 封装器(@vwxyzjn)
- 环境外部使用的依赖项(例如封装器)现在位于 `gym[other]` 中(@jkterry1)
- 将算法和未使用的 toy-text 环境(猜谜游戏、温度计、nchain、轮盘赌、kellycoinflip)移至第三方仓库(@jkterry1, @Rohan138)
- 修复了 MultiDiscrete 空间中的扁平化工具和 flatdim(@tristandeleu)
- 向 dict 空间添加 `__setitem__`(@jfpettit)
- 对 box 空间 `.contains` 方法的大量修复(@FirefoxMetzger)
- 使21点环境正确符合 Barto 和 Sutton 书籍标准,版本提升至 v1(@RedTachyon)
- 添加了 `NormalizeObservation` 和 `NormalizeReward` 封装器(@vwxyzjn)
- 向 MultiDiscrete 空间添加 `__getitem__` 和 `__len__`(@XuehaiPan)
- 将 `.shape` 更改为 box 空间的属性,以防止意外行为(@RedTachyon)
错误修复和升级
- 录像机优雅地处理关闭(@XuehaiPan)
- setup.py 中剩余的不必要依赖项已解决(@jkterry1)
- Acrobot 性能小幅提升(@TuckerBMorgan)
- 当施加 0 力时,摆(Pendulum)能正确渲染(@Olimoyo)
- 使所有经典控制环境和双足步行器中观测的数据类型与观测空间数据类型保持一致(@RedTachyon)
- 移除了注册中未使用和长期弃用的功能(@Rohan138)
- Framestack 封装器现在继承自 obswrapper(@jfpettit)
- `spaces.Tuple` 和 `spaces.Dict` 的种子方法现在功能正常,完全随机,功能齐全,并按预期行为(@XuehaiPan, @RaghuSpaceRajan)
- 将 `time()` 替换为 `perf_counter()`,以更好地测量短时间持续(@zuoxingdong)
**完整更新日志**:0.19.0...v0.20.0
0.19.0¶
发布于 2021-08-13 - GitHub - PyPI
Gym 0.19.0 是一个大型维护版本,也是自 @jkterry1 成为维护者以来的第一个版本。此版本应该没有破坏性更改。
新功能
- 向 multidiscrete 空间添加了自定义数据类型参数(@m-orsini)
- 根据 SB3 和 PettingZoo 测试添加了 API 合规性测试(@amtamasi)
- RecordEpisodeStatics 与 VectorEnv 兼容(@vwxyzjn)
错误修复
- 移除了未使用的依赖项,移除了导致在新机器上安装问题的非必要依赖项版本要求,添加了完整的 requirements.txt 并将通用依赖项移至 extras。值得注意的是,“toy_text”不是一个使用的 extra。atari-py 现在被固定到一个精确的工作版本,等待切换到 ale-py(@jkterry1)
- 修复了 FrozenLake 和 FrozenLake8x8 中奖励的错误;版本提升至 v1(@ZhiqingXiao)
-移除了剩余的 numpy 弃用警告(@super-pirata) - 修复了视频录制问题(@mahiuchun, @zlig)
- EZ pickle 参数修复(@zzyunzhi, @Indoril007)
- 其他非常小的(非破坏性)修复
其他
0.12.5¶
v0.9.6¶
发布于 2018-02-01 - GitHub - PyPI
- 现在您的 `Env` 和 `Wrapper` 子类应该定义 `step`、`reset`、`render`、`close`、`seed`,而不是以下划线开头的私有方法名。
- 移除了 `board_game`、`debugging`、`safety`、`parameter_tuning` 环境,因为 OpenAI 不再维护它们。我们鼓励作者和用户为这些环境创建新的仓库。
- 将 `MultiDiscrete` 动作空间范围从 `[a, ..., b-1]` 更改为 `[0, ..., n-1]`。
- 不再使用 `render(close=True)`,请使用环境特定的方法关闭渲染。
- 移除了 `scoreboard` 目录,因为该网站已不存在。
- 将 `gym/monitoring` 移动到 `gym/wrappers/monitoring`
- 向 `Space` 添加 `dtype`。
- 不再使用 Python 的内置模块,转而使用 `gym.logger`。