一个Gym环境包含智能体可与之交互的必须的功能。一般包含4个函数(方法): init:初始化环境类step:输入action,输出包含4个项的list:the next state, the reward of the current state, done, info.reset:重置state和环境的其他变量render:显示实时的视频 所有gym环境都包含在pip包中,并遵循以下结构
其中各部分的代码如下:gym-foo/setup.py
from setuptools import setupsetup(name='gym_foo',version='0.0.1',install_requires=['gym'])
这是pip的安装文件。它描述了环境的名字、版本、依赖等。
gym-foo/gym_foo/init.py
from gym.envs.registration import registerregister(id='foo-v0',entry_point='gym_foo.envs:FooEnv',)
这个文件注册了环境的id和entry points
gym-foo/gym_foo/envs/init.py
from .foo_env import FooEnv
gym-foo/gym_foo/envs/foo_env.py
import gymfrom gym import error, spaces, utilsfrom gym.utils import seedingclass FooEnv(gym.Env):metadata = {'render.modes': ['human']}def __init__(self):passdef step(self, action):passdef reset(self):passdef render(self, mode='human', close=False):pass
现在,环境已经定义完成,下面可以进行安装和注册环境了。
进入到gym-foo目录,运行pip命令
pip install -e .
-e 参数表示这个包是以"editable"模式安装的。这意味着这个包安装在本地,并且任何对于原始包的任何更改都会反映到环境上面。
3. 创建Gym环境
新建一个py文件create_gym_foo.py
import gymimport gym_fooenv = gym.make('foo-v0')
运行该文件会创建一个名为foo-v0的Gym环境
4. 查看已有的Gym环境
新建一个py文件test_gym_foo.py
from gym import envsimport gym_fooenvids = [spec.id for spec in envs.registry.all()]for envid in sorted(envids):print(envid)
运行该文件,查看输出内容
可以看到最后一个即为我们刚刚创建的Gym环境。
本文参考自:/article/57141243315/
欢迎查看下篇:Gym学习(3)创建Pybullet的Gym环境
如果觉得《Gym学习(2)自定义注册Gym环境》对你有帮助,请点赞、收藏,并留下你的观点哦!