如何自定义一个自己的强化学习环境呢,并且将该环境安装在本地文件夹中,可供随时修改该环境,如状态、动作、奖励等。具体方法如下:
1.首先创建这样一个包:
TX_PiH/
README.md
setup.py
gym_envs/
__init__.py
envs/
__init__.py
tx_pih.py
重要文件分别为:
TX_PiH/setup.py
TX_PiH/gym_envs/init.py
TX_PiH/gym_envs/envs/init.py
2.分别为上述三个文件添加自定义内容:
2.1 TX_PiH/setup.py:
from setuptools import find_packages, setup
setup(
name="gym_envs",
author="Wang Feihong",
version='2.0.0',
packages=find_packages(),
)
该文件中,重点必要内容是:1环境名称name、2版本version
2.2 TX_PiH/gym_envs/init.py:
from gym.envs.registration import register
register(
id="txPiH-v2",
entry_point="gym_envs.envs:TXEnv",
max_episode_steps=350,
)
这是为了gym检测到自定义环境,环境id必写,为了之后环境的生成需要,entry_point必写,指向环境所在位置及代码中环境类名称,max_episode_steps可写,判断智能体在当前回合能进行的最大步数,若已达目标或者达到最大步数,则产生完成信号。
除此之外,注册自定义环境还有其他关键字:reward_threshold、nondeterministic、order_enforce、autoreset、kwargs。具体参见gym的api文档。
2.3 TX_PiH/gym_envs/envs/init.py:
from gym_envs.envs.tx_pih import TXEnv
添加该行路径信息即可。gym_envs.envs.tx_pih.py文件中即写明强化学习环境,类名称为TXPeginHoleEnv:“class TXPeginHoleEnv(gym.env)”,可在之中定义observation_space、action_space、reset、step、render、close等。
3.本地安装该自定义环境
pip install -e .
在TX_PiH文件夹下,打开终端运行该命令即可,conda对应虚拟环境目录"envs/你的虚拟环境名称/lib/python3.X/site-packages/"会生成链接文件:gym-envs.egg-link。
若使用该命令:python setup.py install。会将自定义环境安装到虚拟环境位置中。
4.测试环境
创建测试文件:test.py
import gym
import gym_envs
env = gym.make('txPiH-v2')
能成功调用到该环境,则表明自定义环境创建成功。
参考资料:https://www.gymlibrary.dev/content/environment_creation/