前言
关于在模型训练过程中需要更改某些配置来使车辆运行或道路满足某些特殊需要,首先需要打开该项目的源文件的安装位置(本人是先安装的python,并通过pip安装的该环境的库):
C:\Users\你的用户名\AppData\Local\Programs\Python\Python36\Lib\site-packages\highway_env
1、车辆的加、减速度区间以及转向区间
在利用强化学习对车辆进行训练时,车辆默认是可以前进以及后退的,但是车辆后退会导致需要的训练回合数较高而且模型很容易不收敛,为了验证算法的有效性,一般是要求车辆只可以前向行驶。该环境中,车辆的前进以及后退通过加速度来进行控制,其默认范围在highway_env\envs\common\action.py文件中的ContinuousAction类下
ACCELERATION_RANGE = (-5, 5.0)
"""Acceleration range: [-x, x], in m/s²."""
STEERING_RANGE = (-np.pi / 4, np.pi / 4)
"""Steering angle range: [-x, x], in rad."""
2、增加观测信息
在某些条件下,我们在训练过程中,希望观测更多的state中不含有的车辆及环境的状态信息,这些状态信息在训练过程中的以下语句中的info变量中。
next_state, reward, done, info = env.step(action)
其可以通过在highway_env\envs\common\abstract.py文件中的_info函数下更改,通过在
info = {
"speed": self.vehicle.speed,
"crashed": self.vehicle.crashed,
"vehicle heading": self.vehicle.heading,#车辆的指向角,以pi为单位
"action": action,
}
下添加对应的内容即可实现,上述代码中的
"vehicle heading": self.vehicle.heading,#车辆的指向角,以pi为单位
就是我自己添加的,它反映的是车辆的指向角信息。
3、创建自己的环境
创建自己的环境主要注意的点有以下几条:
建议在已有环境的基础上进行更改。
首先是要将原始类名改掉(自己随便取),如下
class feiv0(AbstractEnv):
其他奖励函数、车辆以及道路网等根据自己的需要自行修改即可。
其次要注意的是
register(
id='fei-v0',#调用环境时的id
entry_point='highway_env.envs:feiv0',#此处的feiv0应该与上文所述的类名相同
)
修改完毕后即可在模型训练或测试过程中,通过以下命令调取环境
env = gym.make("fei-v0")
后记
其他一些暂时还没有想到,也没有用到,等后续有需要再补充吧。