上一篇自定义自己的环境是基于highway-env=1.5的版本,是因为我在highway-env1.8.1的版本一直创建不成功,今天我解决啦!下面介绍如何在highway-env1.8.1版本下创建自己的环境!
1、复制merge.py,在envs文件下创建一个自己的环境文件,命名为mymerge.py。
2、在mymerge.py中修改,首先修改类名,将原类名class MergeEnv(AbstractEnv):修改为class myMergeEnv(AbstractEnv):
注意最新版本的highway-env中仅修改类名即可
上述mymerge.py修改完成。
5、在原来的envs文件夹中有一个__init__.py文件,所有新建的环境要在这里完成导入才可以使用,所以需要在原来的代码下面添加一行
from highway_env.envs.mymerge_env import *,这里就意味这将新建的环境文件成功导入进来啦。
6、!!!这一步就是一直让我创建失败的关键步骤
在highway-env文件夹下还有一个__init__.py文件,注意这里要区分不是上一步的__init__.py文件(即envs文件夹下的__init__.py文件),在该文件代码最后添加
# mymerge_env.py register( id='mymerge-v0',(之后使用环境时的调用名) entry_point='highway_env.envs:myMergeEnv'(在mymerge.py文件中新修改的类名), )
即为注册环境成功!!!
6、使用环境:新建一个文件调用新环境id查看是否成功创建。
import gymnasium as gym from matplotlib import pyplot as plt env = gym.make('mymerge-v0', render_mode='rgb_array') env.reset() for _ in range(3): action = env.action_type.actions_indexes["IDLE"] obs, reward, done, truncated, info = env.step(action) env.render() plt.imshow(env.render()) plt.show()
7、正常出现小窗口动画即为创建成功啦!
大家有想法的我们多多交流,一起进步!
————————————————
版权声明:本文为CSDN博主「Britney838」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_73088331/article/details/130707326