接下来进行强化学习方面的研究和学习:
首先是安装学习RL最常用的仿真环境——Gym
推荐安装的Gym版本如下,使用pip命令进行安装:
pip install gym==0.26.2
pip install pygame==2.3.0
环境安装完成后,可以使用下面的测试代码进行测试:
# RL环境Gym的测试代码
import gym# 创建CartPole环境,指定渲染模式为rgb_array,如果是在IDE中可以改为'human’
env = gym.make('CartPole-v1', render_mode='human')# 重置环境
env.reset()# 循环N次
for i in range(10):env.render() # 渲染环境action = env.action_space.sample() # 从动作空间中随机选取一个动作env.step(action) # 执行动作# 关闭环境
env.close()
我是在Pycharm编辑器中进行的环境测试,结果如下:
运行测试代码时会发现会有一个倒立摆短时出现,说明Gym环境安装的测试无误!
最后给出结合opencv实现gym环境的图像动态显示代码案例:
import cv2
import gym
import numpy as npclass GymHelper:def __init__(self, env):self.env = env# OpenCV不需要在这里初始化图像窗口def render(self):# 在新的API中,确保你在创建环境时指定了render_mode='rgb_array'image_data = self.env.render() # 获取RGB数组image_data = cv2.cvtColor(image_data, cv2.COLOR_RGB2BGR) # 将RGB转为BGRcv2.imshow('Environment', image_data) # 使用OpenCV显示图像cv2.waitKey(100) # 短暂等待,以便图像可以显示# 创建环境,指定渲染模式
env = gym.make('CartPole-v1', render_mode='rgb_array')
env.reset()
gym_helper = GymHelper(env)for i in range(30):gym_helper.render() # 使用OpenCV渲染环境action = env.action_space.sample()env.step(action)# 循环结束后关闭OpenCV窗口
cv2.destroyAllWindows()
env.close()
运行结果如下,图像是有一段动态过程的,我只进行了一次静态截图显示: