1. 查看所有环境
Gym是一个包含各种各样强化学习仿真环境的大集合,并且封装成通用的接口暴露给用户,查看所有环境的代码如下
import gymnasium as gym
from gym import envs
print(envs.registry.all())
2. 编写文件放置
首先找到自己的环境下面的gym环境包envs(也可以在pycharm的外部库Lib/site-packages/gymnasium/envs中找到):
我的路径是
D:\anaconda\anaconda\envs\gym\Lib\site-packages\gymnasium\envs
之后我们要创建自己的myenv.py文件,确保自己创建的环境可以在gymnasium里使用,可以进入classic_control文件新建一个myenv的文件夹。
也可以直接将我们的环境放入classic_control中,只是新建一个文件夹不容易混淆。
注意:不推荐把文件放到robotics、mujoco文件夹里,因为这里是gym机器人环境的编辑文件,我们放进去后在运行调试会出错。
3.注册自己的模拟器
①打开classic_control文件夹中的__init__.py文件,添加
from gymnasium.envs.classic_control.myenv.myenv import MyEnv
【直接将我们的环境放入classic_control中时添加from gymnasium.envs.classic_control.myenv import MyEnv】
②返回gymnasium/envs目录,在该目录的__init__.py中注册环境:
添加自己创建的环境
register(
id="MyEnv-v0",
entry_point="gymnasium.envs.classic_control:MyEnv",
max_episode_steps=200,
reward_threshold=195.0,
)
注意:MyEnv-v0中v0代表环境类的版本号,在定义类的的时候名字里可以不加,但是在id注册的时候要加,后面import的时候要加。
至此,就完成了环境的注册,就可以使用自定义的环境了!
4. 自定义环境实现
直接上代码,在我们自定义的环境myenv/myen