Pytorch深度强化学习:Gym安装与环境搭建教程(附基本指令表)

这篇具有很好参考价值的文章主要介绍了Pytorch深度强化学习:Gym安装与环境搭建教程(附基本指令表)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0 专栏介绍

本专栏重点介绍强化学习技术的数学原理,并且采用Pytorch框架对常见的强化学习算法、案例进行实现,帮助读者理解并快速上手开发。同时,辅以各种机器学习、数据处理技术,扩充人工智能的底层知识。

🚀详情:《Pytorch深度强化学习》


1 Gym介绍

强化学习是在潜在的不确定复杂环境中,训练一个最优决策指导一系列行动实现目标最优化的机器学习方法。自从AlphaGo的横空出世之后,确定了强化学习在人工智能领域的重要地位,越来越多的人加入到强化学习的研究和学习中。

OpenAI Gym是一个研究和比较强化学习相关算法的开源工具包,包含了许多经典的仿真环境(各种游戏),兼容常见的数值运算库,使用户无需过多了解游戏的内部实现,通过简单地调用就可以用来测试和仿真。OpenAI Gym由以下两部分组成:

  • Gym开源库:测试仿真环境,这些环境有一个公共的接口且允许用户设计通用的算法
  • OpenAI Gym服务:提供一个站点和API,允许用户对他们的测试结果进行比较

Pytorch深度强化学习:Gym安装与环境搭建教程(附基本指令表)

2 Gym安装

gym中从简单到复杂,包含了许多经典的仿真环境:

  • 入门级:经典控制和文字游戏

Pytorch深度强化学习:Gym安装与环境搭建教程(附基本指令表)

  • 雅达利游戏:是雅达利游戏公司出品的小游戏合集,比入门游戏难度更高

Pytorch深度强化学习:Gym安装与环境搭建教程(附基本指令表)

  • 2D/3D的机器人:机器人仿真环境,需要利用第三方的物理引擎如 MuJoCo

建议在虚拟环境中安装,虚拟环境相关知识请看:Anaconda安装与Python虚拟环境配置保姆级图文教程(附速查字典)

  • 激活虚拟环境

    conda activate pytorch
    
  • 安装gym相关库

    # 安装基本gym库,只含有入门级环境
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple gym
    # 安装Box2D环境支持组件
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple gym[box2d]
    
  • 安装gym雅达利环境库

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple gym[atari]
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple autorom
    AutoROM --accept-license
    

    需要注意,这里执行AutoROM --accept-license时可能较慢,是因为要进入外网下载游戏包,建议到atarimania.com直接下载Roms.rar并移动到路径~\Anaconda\envs\pytorch\Lib\site-packages\AutoROM\roms中,显示

    AutoROM will download the Atari 2600 ROMs.
    They will be installed to:
            ~\Anaconda\envs\pytorch\Lib\site-packages\AutoROM\roms
    
    Existing ROMs will be overwritten.
    Installed ~\Anaconda\envs\pytorch\lib\site-packages\AutoROM\roms\adventure.bin
    Installed ~\Anaconda\envs\pytorch\lib\site-packages\AutoROM\roms\air_raid.bin
    Installed ~\Anaconda\envs\pytorch\lib\site-packages\AutoROM\roms\alien.bin
    Installed ~\Anaconda\envs\pytorch\lib\site-packages\AutoROM\roms\amidar.bin
    Installed ~\Anaconda\envs\pytorch\lib\site-packages\AutoROM\roms\assault.bin
    ...
    Done!
    

    说明安装完成

  • 测试环境

    import gym
    
    env = gym.make('Tennis-v4', render_mode="human")
    print("Observation Space: ", env.observation_space)
    print("Action Space       ", env.action_space)
    
    obs = env.reset()
    for i in range(1000):
        env.render()
        action = env.action_space.sample()
        obs, reward, done, info, _ = env.step(action)
    env.close()
    
    print(gym.envs.registry.keys())
    

3 基本指令

gym中最核心的接口就是env环境类,智能体与环境的交互如图所示,这就是强化学习的基本流程:在每个时间点上,智能体选择一个动作(action),环境返回上一次action的观测(Observation)奖励(Reward)

Pytorch深度强化学习:Gym安装与环境搭建教程(附基本指令表)
常用指令如下:

3.1 make()

作用:生成环境对象

'''
* @breif: 生成环境对象
* @param[in]: id            ->  启用环境的名称
* @param[in]: render_mode   ->  渲染模式
* @retval: 环境对象
'''
env = gym.make(id:str, render_mode:str)

通过make()创建完环境对象后,可以查看环境的属性和当前状态

env = gym.make('Tennis-v4', render_mode="human")
print('观测空间:', env.observation_space)
print('动作空间:', env.action_space)
print('动作数:', env.action_space.n)

>>> 观测空间: Box(0, 255, (210, 160, 3), uint8)
>>> 动作空间: Discrete(18)
>>> 动作数: 18

gym的仿真环境中,有运动空间action_space和观测空间observation_space两个Space类型接口,用于描述有效的运动和观测的格式和范围

渲染模式支持:

  • human:在显示器或终端上渲染
  • rgb_array:返回像素图像的RGB阵列作为返回值
  • ansi:将文本作为返回值返回

3.2 reset()

作用:重置环境的状态,返回初始观测状态

'''
* @breif: 重置环境,回到初始状态
* @param[in]: seed	-> 随机种子
* @retval: 环境初始观测状态
'''
state = env.reset(seed=None)

查看reset()的状态信息

state = env.reset()
print("初始状态:", state)
print("当前状态:", env.state)

>>> 初始状态: (array([ 0.03745903, -0.02521806, -0.01444992, -0.01588714], dtype=float32), {})
>>> 当前状态: [ 0.03745903 -0.02521806 -0.01444992 -0.01588714]

在仿真开始前必须调用reset()以初始化环境。 seed可以指定环境的随机数种子,如果想要训练的再现性,或者想要根据不同的环境使用不同的随机数种子,可以使用该参数

3.3 step()

作用:单步执行环境动力学过程

'''
* @breif: 单步执行环境动力学过程
* @param[in]: 动作
* @retval: 五元组(当前状态, 奖励, 是否结束, 额外限制, 日志)
'''
state, reward, done, truncated, info = env.step(action)

查看五元组

for i in range(5):
    action = env.action_space.sample()
    state, reward, done, truncated, info = env.step(action)
    print('动作:', action, '当前状态:', state, '奖励:', reward, '是否结束:', done, '额外限制:', truncated, '日志:', info)

>>> 动作: 1 当前状态: [-0.01200642  0.18693487  0.02998236 -0.23828246] 奖励: 1.0 是否结束: False 额外限制: False 日志: {}
>>> 动作: 1 当前状态: [-0.00826773  0.38161597  0.02521671 -0.5213593 ] 奖励: 1.0 是否结束: False 额外限制: False 日志: {}
>>> 动作: 0 当前状态: [-0.00063541  0.18614829  0.01478953 -0.22083813] 奖励: 1.0 是否结束: False 额外限制: False 日志: {}
>>> 动作: 0 当前状态: [ 0.00308756 -0.00918191  0.01037276  0.07647308] 奖励: 1.0 是否结束: False 额外限制: False 日志: {}
>>> 动作: 0 当前状态: [ 0.00290392 -0.20445101  0.01190223  0.3724105 ] 奖励: 1.0 是否结束: False 额外限制: False 日志: {}

具体而言,五元组的含义如下:

  • 状态state:执行当前动作后环境转移到的状态,例如从相机获取的像素点,机器人各个关节的角度或棋盘游戏当前的状态等;
  • 奖励reward: 执行当前动作后智能体获得的奖励,不同环境中奖励值变化范围也不相同,但强化学习的目标就是使得总奖励值最大;
  • 是否完成done:表示是否需要将环境重置env.reset()。大多数情况下,当 done == true时就表明当前幕结束,例如当机器人摔倒或者掉出台面,就应当及时终止;
  • 额外限制truncated:表示是否满足额外的截断条件,通常是一个时间限制,但也可用于指示代理物理上超出界限,可用于在达到终端状态之前提前结束该幕
  • 信息info: 针对仿真调试过程的诊断信息

此外env.sample_space.sample()表示对动作空间进行随机采样,随机采样是gym内嵌的baseline策略,强化学习算法中的策略至少要比这个baseline效果好

3.4 close()

作用:关闭环境

4 常见问题

  1. ImportError: cannot import name 'NotRequired' from 'typing_extensions'

    解决方案:终端运行

    pip install typing-extensions --upgrade
    

参考资料

  • OpenAI Gym官方文档

🔥 更多精彩专栏文章来源地址https://www.toymoban.com/news/detail-448663.html

  • 《ROS从入门到精通》
  • 《Pytorch深度学习实战》
  • 《机器学习强基计划》
  • 《运动规划实战精讲》

👇源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系👇

到了这里,关于Pytorch深度强化学习:Gym安装与环境搭建教程(附基本指令表)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python深度强化学习实战 ——OpenAI Gym-CarRacing自动驾驶项目

          💭 写在前面: 本篇是关于 OpenAI Gym-CarRacing 自动驾驶项目的博客,面向掌握 Python 并有一定的深度强化学习基础的读者。 GYM-Box2D CarRacing 是一种在 OpenAI Gym 平台上开发和比较强化学习算法的模拟环境。它是流行的 Box2D 物理引擎的一个版本,经过修改以支持模拟汽车在

    2024年02月16日
    浏览(28)
  • Ubuntu22.04搭建Pytorch框架深度学习环境+安装Miniconda+安装CUDA与cuDNN

    以Ubuntu为例,从零搭建Pytorch框架深度学习环境。 1.1 系统下载 访问地址ubuntu官网 1.2 启动盘制作 访问ultraiso官网 1.2.1打开镜像 1.2.2写入镜像 1.3磁盘分区 1.3.1Windows磁盘管理 对要压缩的卷右键,选择压缩卷 压缩出的可用空间不要进行分区,等待ubuntu系统操作 1.3.2分区助手或DG

    2024年02月02日
    浏览(51)
  • 并行环境让采样速度快两个量级:Isaac Gym提速强化学习

    仿真环境的 采样速度慢 ,是强化学习的一个瓶颈。例如,论文中常用的 MuJoCo 环境,台式机或服务器的 CPU 上运行仿真环境,一小时大概采集十万或百万步(1e5 或 1e6 步);训练一个智能体(收敛后)需要十多个小时。 加快仿真环境的采样速度,通常有以下方法: 增加并行

    2024年02月16日
    浏览(29)
  • Anaconda安装教程以及深度学习环境搭建

    目录 前言 下载Anaconda 虚拟环境的搭建 在pycharm中配置现有的conda环境 CUDA简介 下载安装pytorch包 最近换新笔记本了,要重新安装软件,以前本来是想要写这个教程的,但当时由于截图不全还要懒得再下载重装,就放弃了,到后面又搁置了,而现在还要重新配置环境,所幸我有

    2024年02月11日
    浏览(41)
  • windows11+GPU1060安装强化学习环境之pytorch

    这里大家看一个视频系列,讲得非常详细,链接在此:https://www.bilibili.com/video/BV1S5411X7FY?p=28vd_source=3be739b673e1151850f4b8060ac78e1a 这里主要是说我遇到的问题以及解决办法。 首先,我的笔记本是有显卡的,只不过算力为6,较低,但是已经差不多了,主要是想在windows上操作,嗯,还

    2024年01月19日
    浏览(36)
  • 深度学习pytorch环境搭建

    搭建pytorch环境,主要目的还是尽量利用gpu的算力,cpu也可以但速度要慢很多,如果没有Nvidia显卡,torch.cuda.is_available()就是False,是正确的。即便没有显卡,也是可以往后面学习的,只不过运算速度会慢很多。 当数据量较大时,在GPU上的运算速度接近CPU的10倍,且随着layer的加

    2023年04月12日
    浏览(29)
  • 【动手学强化学习】安装gym subprocess-exited-with-error

    以下内容均在ubuntu18.0.4环境使用 最近在看《动手学强化学习》安装运行相关的gym环境时候遇到了一些问题。 1、文中使用gym为== 0.18.3 该版本 支持 python3.8, python3.9 使用会有问题,env.seed()无法直接使用。(使用3.8.16 可成功运行文中代码) 2、在linux下本来已经安装了一个pyth

    2024年02月11日
    浏览(38)
  • 【深度强化学习】Python:OpenAI Gym-CarRacing 自动驾驶 | 提供项目完整代码 | 车道检测功能 | 路径训练功能 | 车辆控制功能

          💭 写在前面: 本篇是关于 OpenAI Gym-CarRacing 自动驾驶项目的博客,面向掌握 Python 并有一定的深度强化学习基础的读者。 GYM-Box2D CarRacing 是一种在 OpenAI Gym 平台上开发和比较强化学习算法的模拟环境。它是流行的 Box2D 物理引擎的一个版本,经过修改以支持模拟汽车在

    2024年02月16日
    浏览(34)
  • 用 GPU 并行环境 Isaac Gym + 强化学习库 ElegantRL:训练机器人Ant,3小时6000分,最高12000分

    前排提醒,目前我们能 “用 ppo 四分钟训练 ant 到 6000 分”,比本文的 3 小时快了很多很多,有空会更新代码 https://blog.csdn.net/sinat_39620217/article/details/131724602 介绍了 Isaac Gym 库 如何使用 GPU 做大规模并行仿真,对环境模块提速。这篇帖子,我们使用 1 张 A100GPU 在 3 个小时之内

    2024年02月16日
    浏览(28)
  • 全网最新最全的基于Tensorflow和PyTorch深度学习环境安装教程: Tensorflow 2.10.1 加 CUDA 11.8 加 CUDNN8.8.1加PyTorch2.0.0

    本文编写日期是:2023年4月. Python开发环境是Anaconda 3.10版本,具体Anaconda的安装这里就不赘述了,基础来的。建议先完整看完本文再试,特别是最后安装过程经验分享,可以抑制安装过程中一些奇怪的念头,减少走弯路。 目录 1. NVidia驱动安装  2. 安装CUDA Toolkit 3. 安装Tensorfl

    2024年02月08日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包