一起来学强化学习系列(一)-gym环境搭建

Gym入门&自定义环境操作 gym使用及自定义环境 阅读详情

前言

为何开此系列:近期在学习强化学习,故开此系列博文和大家一起学习,一起交流,同时也是为了起到监督自己的效果。

该系列使用到的教材:深入浅出强化学习

我可能会如何学习 :原理当然要学,但我可能会更注重实践,所以本系列当中可能会有大量本人亲自实践的内容。关于书本的内容,我会自己读一遍,然后将其中的实践部分自己动手实现,所以想要知道为什么要这么实现,推荐先去读一读教材,本系列更适合想知道如何动手实现书中案例的🐻弟们。

我希望达到什么目标:希望能够通过该系列监督自己将强化学习入门,能够了解强化学习是什么、有什么用、怎么用、代码怎么写,为研二的论文实验打好基础。当然,也希望能跟大家分享自己的学习过程~

希望读者带着什么态度来读:我也是第一次学强化学习的菜鸡,难免会有理解不到位、或者写错的地方,希望大家带着辩证的态度来看本系列博文,一起和谐讨论,欢迎大家给我指正。

那么下面就进入正题吧~


gym环境的搭建(Windows版)

 本书中使⽤的仿真环境为OpenAI 的 gym(https://github.com/openai/gym)。

但是书中使用的是linux系统的安装,由于我电脑上暂未安linux系统,也没安虚拟机,我就用windows学习吧,遇到什么问题再想办法解决。

1.安装anaconda

官网安装,这个就不多介绍了,自行百度。

安装完后下载可以下载一个jupyter notebook,后续实践我会用这个。

2.使用pip下载gym

官网写的 gym要求 python3.5+

 打开anaconda新建一个python3.5+的环境gym

新建一个gym环境后,点右侧绿色箭头 -> open terminal打开命令行 -> 输入pip install gym

 安装完成后打开jupyter notebook,输入以下代码测试环境:

import gym
env = gym.make('CartPole-v0')
env.reset()
for _ in range(1000):
    env.render()
    env.step(env.action_space.sample()) # take a random action
env.close()

 运行后可以看到如下的小车倒⽴摆模型

说明gym安装成功,环境已经搭建起来了,可以用gym进行更多的算法学习了!

3.介绍一下代码

gym.make('CartPole-v0'):表示创建一个小车倒立摆环境。

改变make中的参数可以改变环境,比如把 'CartPole-v0' 改成 'MountainCar-v0' 可以得到下面的环境,想要对应的环境对应的参数可以去官网查文档。

env.reset():reset()为重新初始化函数。

在强化学习算法中,智能体需要⼀次次地尝试并累积经验,然后从经验中学到好的动作。每⼀次尝试我们称之为⼀条轨迹或⼀个episode,每次尝试都要到达终⽌状态。⼀次尝试结束后,智能体需要从头开始,这就需要智能体具有重新初始化的功能。函数reset()就是⽤来做这个的。

reset()的源代码:

 第2⾏代码是利⽤均匀随机分布初试化环境的状态,第3⾏代码是设置 当前步数为None。第4⾏,返回环境的初始化状态。

关于源码的第二行,返回的是包含4个值的ndarray

至于为什么state有4个值,我也不太理解,我的理解是其中应该有两个值代表横纵坐标、另外两个值应该于当前环境有关,比如施加力的方向、施加力的大小之类的。 

 env.render(): render()函数在这⾥扮演图像引擎的⾓⾊。

 我们知道⼀个仿真环境 必不可少的两部分是物理引擎和图像引擎。物理引擎模拟环境中物体的运 动规律;图像引擎⽤来显⽰环境中的物体图像,其实,对于强化学习算法 ⽽⾔,可以没有 render()函数,但是,为了便于直观显⽰当前环境中物 体的状态,图像引擎还是有必要的。另外,加⼊图像引擎可以⽅便我们调 试代码。

env.step(): 本函数在仿真器中扮演物理引擎的⾓⾊。

其输⼊是动作a,输出是:下 ⼀步状态、⽴即回报、是否终⽌、调试项。它描述了智能体与环境交互的 所有信息,是环境⽂件中最重要的函数。在本函数中,⼀般利⽤智能体的 运动学模型和动⼒学模型计算下⼀步的状态和⽴即回报,并判断是否达到 终⽌状态。

总结

本节主要讲了gym的搭建,并介绍了一下三个核心函数的使用,了解了gym环境的构建过程,就可以构建⾃⼰的仿真环境了。

 

 

Gym学习(1)基本的环境搭建与参数含义 1.Gym是什么 我们为什么要用gym呢?因为gym中封装了很多强化学习的环境,我们在入门或者研究DRL时可以轻视调用gym中写好的环境,帮助我们快速完成任务。 OpenAI Gym 是一个环境仿真库,里面包含了很多现有的环境。针对不同的场景,我们可以选择不同的环境,主要有两类环境一类是离散的,一类是连续的。 2.Gym怎么安装 安装的话很容易,在终端中输入以下命令即可 pip install gym 在使用过程中可以会报错缺少其他包,比如pyglet等。此时直接pip安装就行。 3.Gym的经典代码 阅读详情

相关推荐

【windows系统anaconda下gym环境搭建】新手向手把手细致讲解

今天来用一篇文章说明讲解一下小白如何零基础,在windows系统下的anaconda下安装搭建gym环境,对新手十分友好,也欢迎大家在评论区一起讨论解决问题。

liaoge666的博客 6333

gym库文档学习(二)

本文档概述了为创建新环境而设计的 Gym 中包含的创建新环境和相关有用的装饰器、实用程序和测试。您可以克隆 gym-examples 以使用此处提供的代码。建议使用虚拟环境: 1 子类化gym.Env 在学习如何创建自己的环境之前,您应该查看 Gym 的 API 文档。链接:https://blog.csdn.net/weixin_45985148/article/details/125015252https://blog.csdn.net/weixin_45985148/article/details

小柴不会敲代码 2476

Gym强化学习自定义环境的搭建

Gym 介绍 Gym是一个用于测试和比较强化学习算法的工具包,它不依赖强化学习算法结构,并且可以使用很多方法对它进行调用,像Tensorflow、Theano。Gym库收集、解决了很多环境的测试过程中的问题,能够很好地使得你的强化学习算法得到很好的工作。并且含有游戏界面,能够帮助你去写更适用的算法。 Gym 环境标准 基本的Gym环境如下图所示: import gym env = gym.make('CartPole-v0') for i_episode in range(20): observat

weixin_44597347的博客 1万+

强化学习笔记:Gym入门--从安装到第一个完整的代码示例

​Gym库(https://gym.openai.com) 是OpenAI推出的强化学习实验环境库。它用Python语言实现了离散之间智能体-环境接口中的环境部分。本文中“环境”一次均指强化学习基本框架模型之“智能体-环境”接口中的“环境”,每个环境就代表着一类强化学习问题,用户通过设计和训练自己的智能体来解决这些强化学习问题。所以,某种意义上,Gym也可以看作是一个强化学习习题集! 本文介绍gym入门所需要必要最小知识集合,并以一个完整的代码示例结束。

chenxy_bwave的专栏 8万+

【深度强化学习】OpenAI Gym的使用

文章目录前言第二章 OpenAI Gym深入解析Agent介绍框架前的准备OpenAI Gym APISpace 类Env 类step()方法创建环境第一个Gym 环境实践: CartPole实现一个随机的AgentGym 的 额外功能——装饰器和监视器装饰器 Wrappers监视器 Monitor总结 前言 重读《Deep Reinforcemnet Learning Hands-on》, 常读常新, 极其深入浅出的一本深度强化学习教程。 本文的唯一贡献是对其进行了翻译和提炼, 加一点自己的理解组织成一篇

B417科研笔记 1万+

建立自己的gym环境并调用

建立自己的gym环境并调用gym构建环境并调用的四个步骤环境文件中的必备要素 机器人找金币的实例实际上就是在教我们利用现有的openAI环境建立自己的gym环境并进行调用。 gym 搞深度强化学习,训练环境的搭建是必须的,因为训练环境是测试算法,训练参数的基本平台。 现在大家用的最多的是openai的gym或者universe。这两个平台非常好,是通用的平台,而且与tensorflow和Theano无缝连接,目前只支持python语言。 gym的安装官网介绍的非常清楚链接: https://gym.open

lxs3213196的博客 1万+

强化学习Openai Gym基础环境搭建

Openai Gym基础环境搭建 ​ Gym提供了一些基础的强化学习环境,并且集成了许多有意思的环境,下面我们来一起看下如何在你的电脑上搭建Gym的开发环境吧。 ​ Gym的Github地址。 1. ReadMe解读 ​ Gym 是一个开源 Python 库,通过提供标准 API 在强化学习算法和环境之间进行通信,以及符合该 API 的标准环境集,用于开发和比较强化学习算法。自发布以来,Gym 的 API 已成为强化学习领域的标准。 ​ Gym的官方文档地址:https://www.gymlibrary.m

丹丹的后花园 1万+

强化学习之基于gym环境的DQN算法实战(Pytorch)

DQN算法是强化学习与深度学习结合的开端,其利用深度网络来拟合值函数,利用Q-leraning算法进行强化学习。DL为Agent提供学习的大脑,RL提供了计算机制,从而达到真的AI。 之前有写过利用DQN算法去解决Cartpole任务和Mountaincar任务,具体可见强化学习之DQN算法实战(Pytorch):https://blog.csdn.net/MR_kdcon/article/details/109699297 上述的任务用的都是gym自带的环境,本文将参考经典环境Puckworld家用g

Ton的博客 1万+

强化学习实战(一)强化学习环境-Gym安装到使用入门

强化学习实战(一)强化学习环境-Gym安装到使用入门

小小何先生的学习之旅 5万+

使用gym搭建自定义(以二维迷宫为例)环境并实现强化学习 python

文章目录 1. 查看所有环境 Gym是一个包含各种各样强化学习仿真环境的大集合,并且封装成通用的接口暴露给用户。 2. 编写文件放置 首先找到自己的环境下面的gym环境包envs,之后我们要创建自己的myenv.py文件,确保自己创建的环境可以在gym里使用,可以进入classic_control文件新建一个myenv的文件夹。 3.注册自己的模拟器 4. 自定义环境实现 5. 测试环境 6. 自定义环境以及测试代码解释 7. gym模块中环境的常用函数 gym的初始化 gym的各个参数的获取 刷新环境..

weixin_45928096的博客 8207

深度强化学习(DRL)二:强化学习环境Gym

目录一、选择框架二、认识Gym三、从代码开始 一、选择框架 RL方面学习框架和平台很多,比较出名的有DeepMind的 Control Suite,OpenAI的 Gym 和 MuJoCo,以及Roboschool、PyBullet等等。 模型和算法依赖于后端使用的库有numpy, tensorflow, keras, pytorch等等。 作为一个初学者,我选则比较常用的OpenAI的 Gym ...

钟鸣的博客 6223

强化学习实践(三)基于gym搭建自己的环境(在gym0.26.2可运行)

自我搭建的环境可以视为一个类。主要包含:变量、函数。变量:必须含有动作和状态,如self.states 状态空间,self.actions 动作空间,self.t 状态转移,self.rewards 回报,self.terminate_states 终止状态等。函数包含:__init __seed,step,

weixin_48878618的博客 3968

环境搭建 | Gym安装与环境搭建教程(附基本指令表)

强化学习是在潜在的不确定复杂环境中,训练一个最优决策指导一系列行动实现目标最优化的机器学习方法。自从AlphaGo的横空出世之后,确定了强化学习在人工智能领域的重要地位,越来越多的人加入到强化学习的研究和学习中。OpenAI Gym是一个研究和比较强化学习相关算法的开源工具包,包含了许多经典的仿真环境(各种游戏),兼容常见的数值运算库,使用户无需过多了解游戏的内部实现,通过简单地调用就可以用来测试和仿真。OpenAI GymGym开源库:测试仿真环境,这些环境有一个公共的接口且允许用户设计通用的算法。

FRIGIDWINTER的博客 3万+

【强化学习/tf/gym】(一)创建自定义gym环境

文章目录说在前面目标准备工作开始gym envaction spaceobservation spacereset 说在前面 环境:Windows10 python版本:3.6 gym版本:0.18.3 目标 本文将使用gym自定义一个简单的环境。如下所示: 其中蓝色小球为其它球,紫色小球为agent/玩家控制的球。 蓝色小球只会往一个方向移动,紫色小球可以往任意方向移动。 所有球移动到边界外后都会从另一边进入。 球的移动速度受球本身大小影响,球越大,移动越慢。 所有球之间都可以相互吞噬,但只能

o0o 1万+

【四】gym搭建自己的环境,全网最详细版本,3分钟你就学会了!

相关文章: 【一】gym环境安装以及安装遇到的错误解决 【二】gym初次入门一学就会-简明教程 【三】gym简单画图 gym搭建自己的环境 获取环境 可以通过gym.make(环境名)的方式获取gym中的环境,anaconda配置的环境,环境在Anaconda3\envs\环境名\Lib\site-packages\gym\envs\__init__.py中获得gym中所有注册的环境信息 Gym是一个包含各种各样强化学习仿真环境的大集合,并且封装成通用的接口暴露给用户,查看所有环境.

丨汀、的博客 1万+

别再只接个放大器了!压电传感器测量电路(电压/电荷放大器)的5个实战配置要点

本文深入解析压电传感器测量电路中的5个关键实战配置要点,包括电缆长度选择、输入阻抗匹配、过载保护设计、低频噪声抑制及放大器选型策略。特别针对电压放大器和电荷放大器的应用场景差异提供工程实践建议,帮助工程师有效解决信号失真、噪声干扰等常见问题,提升测量精度和系统可靠性。

weixin_26869081的博客 301

PyTorch强化学习——PyTorch+Gym强化学习环境搭建

工欲善其事,必先利其器。为了更专注于学习强化学习的思想,而不必关注其底层的计算细节,我们首先搭建相关深度学习环境,主要包括 `Python` 以及 `PyTorch`。

AAI666666的博客 7135

12V电源电路五层防护设计实战指南

12V电源电路是工业控制、车载电子和智能终端中最基础的供电架构,其可靠性不取决于稳压精度,而取决于对反接、浪涌、短路、过温等典型故障的响应能力。理解TVS钳位原理、P-MOSFET防反接机制及eFuse可编程限流逻辑,是构建鲁棒电源系统的核心。技术价值在于将保护从‘事后补救’升级为‘事前拦截’,显著提升产品MTBF并降低售后返修率。典型应用场景涵盖PLC辅助电源、ADAS摄像头供电、IoT网关主板等严苛环境设备。本文聚焦12V输入端到负载输出端的五层串行防护链设计,深度融合TVS选型、MOSFET导通阈值与

weixin_30983965的博客 295

【强化学习系列】Gym库使用——创建自己的强化学习环境1:单一环境创建测试+简单环境可视化

本文基于gym官方文档尝试创建自己的单一强化学习环境

qq_58718853的博客 3915

自动驾驶必备:5分钟搞懂gPTP如何实现μs级时间同步(附开源代码)

本文深入解析了gPTP协议在自动驾驶系统中实现微秒级时间同步的核心机制与工程实践。针对多传感器融合与跨域协同的严苛需求,文章拆解了gPTP的频率同步、对等延迟测量与时间偏移校正三步流程,并提供了基于linuxptp和AVnu gPTP两大开源代码库的实战配置指南与性能评估方法,助力开发者构建高精度、高可靠的车载时间同步网络。

weixin_29211309的博客 167

Windows中的TLS 1.2启用方法(IIS、C#、.Net framework)

折腾几天了windows中的tls1.2启用方法!特此记录一下 开发背景: 在一个用.net framework 2.0开发的客户端程序里面嵌入功能调用第三方物联网相关接口,服务器上有一个restful接口用于接收第三方上报的数据及处理,最后再调用第三方的物联网相关接口。本机开发环境Windows 10,客户服务器是Windows Server 2008 R2。 第一次写这种物联网相关的接口调用,而且第三方提供的文档比较简单,最基本的报文示例都没。开发环境里面各种摸索一步一个坑,首先在发送HTTP请求前

dl1314ld的博客 1万+

快乐的强化学习3——环境模块gym的调用

快乐的强化学习3——环境模块的调用学习前言gym模块的安装gym模块中环境的常用函数gym的初始化gym的各个参数的获取刷新环境刷新环境应用实例 学习前言 在通常的情况下,手动编写强化学习环境是一件非常耗时间的事情,所以如果能够调用其它人已经编写好的环境,我们就可以节约很多时间,将更多的时间用于关注算法本身。这个时候我们就要用到OpenAI的gym模块。这个模块为我们提供了许多现成的环境用于测试我...

Bubbliiiing的学习小课堂 1万+

Qt Installer Framework 简单使用

qt installer framework 简单使用

qq_42815643的博客 2575
上一篇: 人工智能好文汇总
下一篇: 五个稀奇古怪的网站
小小的香辛料
小小的香辛料 领域专家: 算法与数据结构技术领域 领域专家: 算法与数据结构技术领域
博客等级 码龄9年 1万+粉丝 385原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小的香辛料

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值