在早期版本gym中,调用env.render()会直接显示当前画面,但是现在的新版本中这一方法无效。现在有一下几种方法显示当前环境和训练中的画面:
1. render_model = "human"
env = gym.make("CartPole-v1", render_mode = "human")
显示效果:
文章来源地址https://www.toymoban.com/news/detail-646570.html
问题:
该设置下,程序会输出所有运行画面。但是这一步会带来一个问题,因为画面渲染需要时间,导致训练变的非常慢。强化学习的前期是一个一直试错的部分,显然我们并不是每次都想花费时间去观察模型试错,并且多数时候我们想要观察我们想观察的训练阶段。对此我们可以使用下一个方法;
2. render_model = "rgb_array"
env = gym.make("CartPole-v1", render_mode = "rgb_array")
该方法会让env.render()返回一个 rgb_array, 这一rgb_array 表示当前step下的环境画面,当我们需要显示的时候可以使用cv2来进行渲染。方法如下:
# RGB 转化为BGR, cv2显示格式为BGR
img = cv2.cvtColor(env.render(), cv2.COLOR_RGB2BGR)
# 显示画面,test为窗口名称
cv2.imshow("test",img)
# 给cv2一定时间完成渲染,否则无法显示
cv2.waitKey(1)
显示效果如下:
文章来源:https://www.toymoban.com/news/detail-646570.html
到了这里,关于说点人话的强化学习:如何显示当前训练的环境,openai gym不显示画面,env.render()不显示画面,CartPole不显示画面的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!