如何创建gym环境

OpenAI gymnasium是强化学习训练环境事实上的标准,使用强化学习解决问题,首先应该用gymnasium的接口封装需要解决的问题,如果能将要解决的问题封装为gym接口,则可以调用现有的强化学习算法进行问题的初步分析。

具体的实现步骤,参见网站:Make your own custom environment - Gymnasium Documentation

总结一下步骤:

1. 使用gym接口封装需要解决的问题的环境,如下图所示,继承gym.Env类,并在代码中实现:reset,step, render等函数接口;

如何创建gym环境_第1张图片

图1 使用gymnasium函数封装自己需要解决的问题接口

2. 将自己的模块注册到gymnasium,主要在__init__.py文件下,调用gymnasium的注册函数register进行注册,如图2所示,具体为何要注册,注册的原理,注册后发生什么事等,未进行研究

如何创建gym环境_第2张图片

 图2 将自己的模块注册到gymnasium下

3. 使用pip将自己的环境注册到系统,调用Python的setuptools完成注册,具体第,在setup.py中加入对应的代码,如图3所示。然后,执行,pip install -e gym-examples, 如图3所示。

如何创建gym环境_第3张图片

图3 将模块注册到系统或者虚拟环境

4.  编写代码,测试新建环境是否可用

如何创建gym环境_第4张图片

图4 测试新建环境

5. 踩的坑~~~,核心重点

包的下载是按照链接中的命令行下载的,如图 5所示,主要使用Git的命令行。

图5 gym-example的下载过程

但是,这个链接是老的地址,使用的gym(老版本),而非gymnasium(新版本)来编写的,导致了Namespace无法找到的错误,如图6所示。

如何创建gym环境_第5张图片

图6  gymnasium.error.NamespaceNotFound: Namespace gym_examples not found. Have you installed the proper package for gym_examples? 的错误

因此,应该根据网页中的文件,需要:1. 对__init.py__中的引入register库的地方进行修改,注意是from gymnasium.envs.registration import register;2. 对grid_world.py文件进行修改,直接拷贝网页中的文件,然后替换原来的文件

如何创建gym环境_第6张图片 

 

如何创建gym环境_第7张图片

图7 Namespace错误的修改方法,需要修改register和action space为gymnasium库,而非gym库

以上

你可能感兴趣的:(python,开发语言,人工智能,深度学习)