强化学习:仿真环境Gym的安装和测试

接下来进行强化学习方面的研究和学习:
首先是安装学习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()

运行结果如下,图像是有一段动态过程的,我只进行了一次静态截图显示:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/479597.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Stable Diffusion 绘画入门教程(webui)-图生图

通过之前的文章相信大家对文生图已经不陌生了,那么图生图是干啥的呢? 简单理解就是根据我们给出的图片做为参考进行生成图片。 一、能干啥 这里举两个例子 1、二次元头像 真人转二次元,或者二次元转真人都行, 下图为真人转二次…

香港Web3:香港虚拟货币 OTC 业务如何合规开展?

撰文:刘红林 文章来源Techub News专栏作者,搜Tehub News下载查看更多Web3资讯。 香港虚拟货币监管两手抓 2024 年 2 月 2 日,香港财经事务及库务局局长许正宇表示,政府认为有需要把虚拟货币场外交易所 (OTC) 纳入监管&#xff0…

Bert基础(一)--自注意力机制

1、简介 当下最先进的深度学习架构之一,Transformer被广泛应用于自然语言处理领域。它不单替代了以前流行的循环神经网络(recurrent neural network, RNN)和长短期记忆(long short-term memory, LSTM)网络,并且以它为基础衍生出了诸如BERT、GPT-3、T5等…

cockpit install

Running Cockpit — Cockpit Project ip:9090 如果9090端口被占用,可以改为9091 cat /etc/systemd/system/sockets.target.wants/cockpit.socket [Unit] DescriptionCockpit Web Service Socket Documentationman:cockpit-ws(8) Wantscockpit-motd.service[Socket…

VScode写LaTeX配置,实测有效

环境配置请看LaTeX环境配置-TexLive,实测有效http://t.csdnimg.cn/0txlL VScode写LaTeX配置 0.smatra pdf下载 如果使用外部pdf查看器,比如我用的sumatra pdf,官网是Sumatra PDF reader download page 下载对应版本,比如64位,下…

数据结构之线性表插入与删除运算

线性表 线性表的定义 线性表,或称表,是一种非常灵便的结构,可以根据需要改变表的长度,也可以在表中任何位置对元素进行访问、插入或删除等操作。另外,还可以将多个表连接成一个表,或把一个表拆分成多个表…

Solidworks:钣金设计中的参数设定

利用草图工具画一个折线,夹角135度、边长为5mm。参见下图: 然后利用此草图创建钣金基本法兰: 调整视图角度,看一下钣金件与草图的关系: 可以看出,默认情况下草图中的线段对应钣金件的外侧。可以调整“钣…

Innodb底层原理与Mysql日志机制深入剖析

MySQL的内部组件结构 大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。 Server层 主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函…

Redis篇----第七篇

系列文章目录 文章目录 系列文章目录前言一、Redis 的回收策略(淘汰策略)?二、为什么 edis 需要把所有数据放到内存中?三、Redis 的同步机制了解么?四、Pipeline 有什么好处,为什么要用 pipeline?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍…

Android的Compose

Jetpack Compose 是用于构建原生 Android 界面的新工具包,无需修改任何 XML 布局,也不需要使用布局编辑器。相反,只需调用可组合函数来定义所需的元素,Compose 编译器即会完成后面的所有工作。 简而言之,使用Compose&…

数据脱敏(五)脱敏算法-变换算法

脱敏算法篇使用阿里云数据脱敏算法为模板,使用算子平台快速搭建流程来展示数据 "变换脱敏"是一种数据处理技术,主要用于保护个人隐私和数据安全。它通过将敏感信息(如姓名、身份证号、电话号码等)进行某种形式的转换,使…

SpringBoot自动注入源码分析

Spring Boot何时注入Autowired标注的属性? 是在Bean实例化后,填充Bean的时候注入Autowired标注的属性 如果注入类型的Bean存在多个,Spring Boot是如何处理的? 如果存在多个类型的Bean,会根据primary—>javax.ann…