一、小雅自带tutorial文件教程

下载压缩包

这是elegantrl的开源地址: ElegantRL
在这里插入图片描述

我使用的是云服务器平台,上传压缩包之后,使用Linux解压缩命令,将压缩包解压。

在这里插入图片描述

使用conda新建一个虚拟环境

conda create -n ElegantRL
conda activate ElegantRL

在这里插入图片描述

安装elegantrl包

pip install elegantrl

如果出现以下报错,是因为,问题出在安装 box2d-py 时缺少 swig 工具。swig 是一个用于将 C/C++ 代码与 Python 集成的工具,而 box2d-py 依赖于它来编译其 C++ 扩展
在这里插入图片描述

sudo apt update
sudo apt install swig

再重新运行pip install elegantrl
在这里插入图片描述

打开jupyter,我需要把创建的虚拟环境ElegantRL加入到kernel中

在这里插入图片描述
在虚拟环境中安装 ipykernel,这是一个用于将虚拟环境添加到 Jupyter Kernel 的工具。

pip install ipykernel
python -m ipykernel install --user --name=ElegantRL --display-name "Python (ElegantRL)"

–name=ElegantRL:指定 Kernel 的名称(内部标识)。

–display-name “Python (ElegantRL)”:指定在 Jupyter Notebook 中显示的名称。
在这里插入图片描述
现在选择kernel时,可以选择我创建的虚拟环境了
在这里插入图片描述

先学习一下发布的几个教程文件

如果刚才没有在虚拟环境中安装elegantrl包,在教程文件ipynb中,作者首先提供了通过github下载elegantrl的方式,点击运行即可。

# install elegantrl library
!pip install git+https://github.com/AI4Finance-LLC/ElegantRL.git

在这里插入图片描述
第二部分是要导入需要用到的包
在这里插入图片描述
关于包的结构,如下图所示。
在这里插入图片描述
gym.logger.set_level(40) 是 OpenAI Gym 库中的一个设置,用于控制日志输出的级别。具体来说,这行代码的作用是将 Gym 的日志级别设置为 40,即 ERROR 级别,从而屏蔽掉所有低于 ERROR 级别的日志信息(如 WARNING、INFO、DEBUG 等)。

日志级别说明
在 Python 的 logging 模块中,日志级别从低到高分为以下几种:
DEBUG (10):详细的调试信息。
INFO (20):一般的信息性消息。
WARNING (30):警告信息,表示潜在的问题。
ERROR (40):错误信息,表示程序出现了问题。
CRITICAL (50):严重错误,可能导致程序崩溃。

通过设置日志级别,可以控制哪些级别的日志信息会被输出。例如:
如果设置为 WARNING (30),则只会输出 WARNING、ERROR 和 CRITICAL 级别的日志。
如果设置为 ERROR (40),则只会输出 ERROR 和 CRITICAL 级别的日志。
gym.logger.set_level(40) 的作用
屏蔽警告信息:
Gym 在某些情况下会输出警告信息(如环境过时、参数不推荐等)。
通过将日志级别设置为 ERROR,可以屏蔽这些警告信息,使输出更加简洁。
减少干扰:
在训练强化学习模型时,过多的日志信息可能会干扰对训练过程的观察。
屏蔽不必要的日志信息可以让输出更加专注于关键信息。

第三部分是创建环境
在这里插入图片描述

代码解释

gym.make(“BipedalWalker-v3”)
这是 OpenAI Gym 的标准方法,用于创建 BipedalWalker-v3 环境。
BipedalWalker-v3 是一个双足机器人行走任务,目标是让机器人在复杂地形上行走。

get_gym_env_args(env, if_print=False)
这是一个ElegantRL 库中的自定义函数,用于从 Gym 环境中提取关键信息。

参数:
env:Gym 环境对象。
if_print:是否打印提取的信息。这里设置为 False,表示不打印。

输出结果解释

  1. env_name
    环境名称:BipedalWalker-v3。

表示这是一个双足机器人行走任务。

  1. num_envs
    环境数量:1。

表示当前只使用了一个环境实例。

  1. max_step
    每个 episode 的最大步数:1600。

如果智能体在 1600 步内没有完成任务,episode 会自动终止。

  1. state_dim
    状态空间的维度:24。

表示观测空间是一个 24 维的向量,通常包括机器人的关节角度、速度、地形信息等。

  1. action_dim
    动作空间的维度:4。

表示动作空间是一个 4 维的向量,通常用于控制机器人的关节角度或力度。

  1. if_discrete
    动作空间是否为离散:False。

表示动作空间是连续的,而不是离散的。

第四部分:指定强化学习智能体(Agent)和环境(Environment)
在这里插入图片描述
初始化配置
args = Config(AgentPPO, env_class=env_func, env_args=env_args)
Config 是一个ElegantRL库中的配置类,用于初始化训练参数。
参数:
AgentPPO:指定使用的强化学习算法,这里是 PPO(Proximal Policy Optimization)。
env_class:环境创建函数,这里是 gym.make。
env_args:环境参数,这里是前面定义的 env_args 字典。

在这里插入图片描述
这段代码用于设置强化学习训练中的超参数(Hyper-parameters)。以下是代码的详细解释:


1. args.target_step = args.max_step * 4

  • 作用:设置每次训练的目标步数。
  • 解释
    • args.max_step 是每个 episode 的最大步数(在之前的代码中设置为 1600)。
    • args.target_step 是每次训练的目标步数,这里设置为 args.max_step * 4,即 6400
    • 这意味着每次训练会收集 6400 步的经验数据。

2. args.gamma = 0.98

  • 作用:设置折扣因子(Discount Factor)。
  • 解释
    • gamma 是强化学习中的一个重要超参数,用于衡量未来奖励的重要性。
    • gamma 的取值范围是 [0, 1],值越大表示未来奖励越重要。
    • 这里设置为 0.98,表示未来奖励的权重较高。

3. args.eval_times = 2**2

  • 作用:设置评估次数。
  • 解释
    • args.eval_times 是每次评估时运行的 episode 次数。
    • 这里设置为 2**2,即 4 次。
    • 评估用于测试智能体在训练过程中的表现。

4. args.repeat_times = 8

  • 作用:设置每次更新时的重复次数。
  • 解释
    • args.repeat_times 是每次更新策略时重复使用经验数据的次数。
    • 这里设置为 8,表示每次更新会重复使用经验数据 8 次。
    • 这有助于提高数据利用率,但可能会增加过拟合的风险。

总结

这段代码设置了以下超参数:

  1. 目标步数:每次训练的目标步数为 6400
  2. 折扣因子gamma 设置为 0.98,表示未来奖励的权重较高。
  3. 评估次数:每次评估运行 4 个 episode。
  4. 重复次数:每次更新策略时重复使用经验数据 8 次。

这些超参数对强化学习算法的性能和收敛速度有重要影响。通过调整这些参数,可以优化训练过程。

如果 args.eval_times = 4,则每次评估会运行 4 个 episode,然后计算这 4 个 episode 的平均表现。
为什么需要多次评估:
强化学习中的环境通常具有随机性(如初始状态、动作效果等)。
通过多次运行 episode 并取平均值,可以减少随机性对评估结果的影响,得到更稳定的性能指标。

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

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

相关文章

海康ISAPI协议在智联视频超融合平台中的接入方法

一. 海康ISAPI协议详解 海康ISAPI协议原理 海康ISAPI(Internet Server Application Programming Interface)协议是海康威视设备提供的一种基于HTTP/HTTPS的高级通信协议,用于实现客户端与设备之间的数据交互。其核心原理包括: 基…

【Azure 架构师学习笔记】- Azure Databricks (22) --Autoloader

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (21) --费用相关 前言 Databricks家里在Apache Spark之上,是企业级的应对大规模数据处理的通用平台, 可以运行在AWS&a…

论文略读(2025.3.18-更新中)

关于可控视频生成 I2V3D: Controllable image-to-video generation with 3D guidance Image to Video工作,能够实现给一张图,输出一个视频,且可以控制相机。动态信息来自于用户手工设计(相机移动,人体骨骼驱动&#x…

Excel导出工具类--复杂的excel功能导出(使用自定义注解导出)

Excel导出工具类 前言: 简单的excel导出,可以用easy-excel, fast-excel, auto-poi,在导出实体类上加上对应的注解,用封装好的工具类直接导出,但对于复杂的场景, 封装的工具类解决不了,要用原生的excel导出(easy-excel, fast-excel, auto-poi都支持原生的) 业务场景: 根据…

神策数据接入 DeepSeek,AI 赋能数据分析与智能运营

在 AI 技术迅猛发展的浪潮下,神策数据正在加速推进人工智能在数据分析和智能运营领域的深度应用。近日,神策数据宣布全面接入 DeepSeek,为企业客户带来更加智能化、高效的数据分析与智能运营服务。这一举措展现了神策数据在人工智能方向的探索…

头歌 JAVA 桥接模式实验

目录 任务描述 实现方式 编程要求 测试说明 代码实现 总结 1 任务描述 某软件公司欲开发一个数据转换工具,可以将数据库中的数据转换成多种文件格式,例如 TXT、XML、PDF 等格式,同时该工具需要支持多种不同的数据库。 本关任务&#…

安全无事故连续天数计算,python 时间工具的高效利用

安全天数计算,数据系统时间直取,安全标准高效便捷好用。 笔记模板由python脚本于2025-03-17 23:50:52创建,本篇笔记适合对python时间工具有研究欲的coder翻阅。 【学习的细节是欢悦的历程】 博客的核心价值:在于输出思考与经验&am…

Docker Swarm集群搭建

Docker Swarm集群搭建 1.准备环境 搭建Docker Swarm集群最低需要准备三台设备,且均需要提前安装好Docker。我这里准备了四台机器用于搭建集群,分别是: DockerSwarm-Node1 lemonDockerSwarm-Node1:~$ docker --version Docker version 28.…

Unity教程(二十二)技能系统 分身技能

Unity开发2D类银河恶魔城游戏学习笔记 Unity教程(零)Unity和VS的使用相关内容 Unity教程(一)开始学习状态机 Unity教程(二)角色移动的实现 Unity教程(三)角色跳跃的实现 Unity教程&…

麒麟银河V10服务器RabbitMQ安装

安装步骤 rabbitMQ依赖于erlang的环境,所以需要先安装erlang,erlang跟rabbitMQ是有版本之间的关联关系的,根据对应的版本去安装下载,保证少出问题。 可以通过官网来查看RabbitMQ和erlang之间的版本对应关系 rabbitMQ和erlang之间…

让“树和二叉树”埋在记忆土壤中--性质和概念

Nice to meet your! 目录 树的介绍: 树的创建: 二叉树的概念和结构: 二叉树的存储结构: 树的介绍: 概念和结构: 不知你们是否在现实中看见过分为两个叉的枯树,大概长这样: 那…

UDP协议原理

UDP协议原理 本篇介绍 在前面使用UDP编程时已经基本了解了UDP的工作模式,也知道了UDP有三个特点: 无连接不可靠面向数据报 但是当时并没有具体谈论为什么UDP有以上三个特点,基于这个原因,本篇就会针对这三个原因进行介绍 UDP…

关于金融开发领域的一些专业知识总结

目录 1. 交易生命周期 1.1 证券交易所 1.1.1 交易前 1) 订单生成(Order Generation) 2) 订单管理(Order Management) 1.1.2 交易执行 3) 交易匹配(Trade Matching) 1.1.3 交易后 4) 交易确认&…

Flutter运行错误:UG! exception in phase ‘semantic analysis‘

最近在Mac Mini M4上通过Android Studio导入Flutter项目并运行,结果一直跑不起来,错误日志如下: 执行命令查看版本信息: flutter doctor --verbose通过输出信息Java version OpenJDK Runtime Environment (build 21.0.41242208…

DeepSeek + Kimi 自动生成 PPT

可以先用deepseek生成ppt大纲,再把这个大纲复制到Kimi的ppt助手里: https://kimi.moonshot.cn/kimiplus/conpg18t7lagbbsfqksg 选择ppt模板: 点击生成ppt就制作好了。

【C#语言】C#中的同步与异步编程:原理、示例与最佳实践

文章目录 ⭐前言⭐一、同步编程:简单但低效的线性执行🌟代码示例🌟执行流程示意图🌟同步编程特点 ⭐二、异步编程:非阻塞的高效执行🌟代码示例🌟执行流程示意图🌟异步编程核心机制&a…

【MySQL数据库】存储过程与自定义函数(含: SQL变量、分支语句、循环语句 和 游标、异常处理 等内容)

存储过程:一组预编译的SQL语句和流程控制语句,被命名并存储在数据库中。存储过程可以用来封装复杂的数据库操作逻辑,并在需要时进行调用。 类似的操作还有:自定义函数、.sql文件导入。 我们先从熟悉的函数开始说起: …

【sgFloatDialog】自定义组件:浮动弹窗,支持修改尺寸、拖拽位置、最大化、还原、最小化、复位

sgFloatDialog <template><div :class"$options.name" v-if"visible" :theme"theme" :size"size" :style"style"><!-- 托盘头部 --><div class"header" ref"header" dblclick.s…

Java后端开发技术详解

Java作为一门成熟的编程语言&#xff0c;已广泛应用于后端开发领域。其强大的生态系统和广泛的支持库使得Java成为许多企业和开发者的首选后端开发语言。随着云计算、微服务架构和大数据技术的兴起&#xff0c;Java后端开发的技术栈也不断演进。本文将详细介绍Java后端开发的核…

搭建ISCSI传输的配置与管理

前提是&#xff1a; windows server2019设置成桥接模式&#xff0c;因为要让虚拟机和主机设置成一个网段&#xff0c;才能通过网络进行新建虚拟磁盘。 1.添加ISCSI角色 安装位置 选择文件和存储服务----------文件和iscsl 服务------------iscsl目标服务器 2.右上角点击任务&a…