在文章 OpenAI-Gym入门 中,我们以 CartPole-v1 环境为例学习了 OpenAI Gym 的基本用法。在文章 OpenAI-Gym神经网络策略及其训练 中,我们依然是以 CartPole-v1 为例,学习了策略梯度算法及其实现,并用 Keras 实际训练了一个神经网络策略。
在实际业务场景中,我们需要自己实现环境,也就是继承 gym.Env,然后重新实现 reset step render 等函数。本文我们主要看一下 render 这个函数,也就是对环境可视化这块。
定义一个自己的环境类,继承 gym.Env,可以添加元数据来改变渲染环境时的参数,在 init() 中定义一个画板,然后重载 render 方法,写自己的画图逻辑。
其中直线是用 rendering.Line 定义的。代码中的直线元素的方法 set_color 是添加颜色,画板的方法 add_geom 是将元素画到画板上。
注意:画板的水平方向是 x 轴,垂直方向是 y 轴,原点在左下角。
画圆形与画双直线主要的区别在 render 函数内部,其它代码基本一样。