rllib_2_tune实践

RLlib,调参的基本概念(Tune) 如何使用ray的tune进行调参 阅读详情

环境配置:

        python: 3.12.8

        ray: 2.40.0

 实践代码及注释:

import ray 
from ray.rllib.algorithms.ppo import PPOConfig 
from ray import train, tune 
import torch 

ray.init()

config = PPOConfig()
config = config.training(lr=tune.grid_search([0.01, 0.001]))
config = config.environment(env="CartPole-v1")


## episode_reward_mean 提示找不到, 应该改成了 episode_return_mean 
# tune_config = tune.TuneConfig(metric="env_runners/episode_return_mean", mode="max")  # "env_runners/episode_return_mean"

tuner = tune.Tuner(
    "PPO",                  ## 这里放的是 tune.trainable的class, 是个agent类或策略类。 
    run_config = train.RunConfig(
        stop = {'env_runners/episode_return_mean':10,  ## episode_reward_mean 和 episode_return_mean 都会报错
                "training_iteration":3},  ## 多个停止条件之间是或的关系, 是一个字典。 
        checkpoint_config = train.CheckpointConfig(checkpoint_at_end=True),  ## 用于设置保存哪个checkpoint. 
        storage_path = "F:/codes/RLlib_study/ray_results",
    ),
    param_space=config,  ## 这里定义了参数搜索调优空间,是一个PPOConfig对象
    # tune_config=tune_config
)
                        
                      ## Tuner.fit() 默认创建一个log文件夹,通常位于 “~/ray-results”, windows下位于 “C:/用户/xxx/ray_results”
                      ## 这个文件夹位置可以通过上面的 tune.Tuner.run_config.storage_path的设置而改变
results = tuner.fit() ## tuner 返回一个ResultGrid对象,该对象允许进一步分析训练结果并检索经过训练的智能体的checkpoint。

## 获取最佳结果
best_result = results.get_best_result(metric="env_runners/episode_return_mean", mode="max")
## 以 "episode_reward_mean" 为选择指标, 从results里面选择checkpoint, 选择模式是“max”,
## 在一些旧版本的ray中, metric可以被设置为“episode_reward_mean”,
## 不知道从哪一个版本开始,“episode_reward_mean” 不被识别, 变成了 "env_runners/episode_return_mean"。 
## 更多的可选指标,可以去 “~/ray-results” 或 自定义的 storage_path 中的 result.json中去找key
## 得到的  best_result 不直接是 checkpoint, 需要通过以下方式保存。 

## 获取最佳结果里面的 checkpoint 
best_checkpoint = best_result.checkpoint 
## 保存checkpoint 到本地
if best_checkpoint:
    with best_checkpoint.as_directory() as checkpoint_dir:
        print(f"Checkpoint directory:{checkpoint_dir}")

参考: RLlib一:RLlib入门-优快云博客

从零构建分布式强化学习系统:Ray、Tune与RLLib实战解析 本文详细解析了如何从零构建分布式强化学习系统,重点介绍了Ray、Tune与RLLib三大工具的应用实践。通过实战案例展示了如何利用Ray管理计算资源、Tune进行超参数调优以及RLLib实现游戏AI训练,帮助开发者高效构建深度强化学习系统,大幅提升训练效率。 阅读详情

相关推荐

rllib常见问题汇总

开发基于RLlib的项目通常不需要直接fork Ray的GitHub仓库(https://github.com/ray-project/ray)。RLlib是Ray生态系统中的一个库,它构建在Ray的核心分布式运行时之上,提供了强化学习算法和相关工具的功能。通常情况下,您可以通过安装Ray和RLlib的Python包来开始开发基于RLlib的项目。这将安装Ray和RLlib的最新稳定版本。之后,您可以在项目中导入RLlib并开始使用其提供的功能。

AlphaFinance 1346

Ray框架中episode_reward的含义

下面是具体的含义:episode_reward指的是在discount value = 1.0时一个episode的return,也就是把episode中的每一个step获得的reward进行累加。.,也就是一个trajectory.该问题的解释可以参见链接。

tyb_boke的博客 540

9、使用 Ray RLlib 进行强化学习

本文介绍了如何使用 Ray RLlib 进行强化学习,涵盖从环境构建、算法训练到模型评估与部署的完整流程。RLlib 作为行业级强化学习库,支持分布式训练、多种深度学习框架,并与 Ray Tune 和 Ray Serve 紧密集成,便于超参数调优和模型部署。文章详细讲解了 Gym 环境的实现、CLI 与 Python API 的使用方法、模型保存与动作计算,并探讨了课程学习、多智能体环境和外部经验数据利用等高级主题,帮助开发者高效构建和扩展强化学习应用。

app77的博客 242

终极指南:如何使用Optuna自动调优FinRL强化学习模型参数

FinRL是一个强大的金融强化学习框架,它结合了深度学习和强化学习技术,帮助开发者构建智能化的交易策略。然而,强化学习模型的性能很大程度上依赖于超参数的选择,手动调整这些参数既耗时又难以找到最优组合。本文将介绍如何利用Optuna工具在FinRL中实现超参数的自动优化,从而快速提升交易策略的表现。 ## 为什么超参数优化对FinRL至关重要? 在金融强化学习中,超参数的选择直接影响模型的收敛速

gitblog_00794的博客 340

手把手教你用Cadence VPWLF源和参数扫描:搞定非周期激励与gmid曲线绘制(避坑指南)

本文详细介绍了如何在Cadence Virtuoso中使用VPWLF源生成复杂非周期激励信号,并结合gmid方法进行双参数扫描优化电路设计。通过实战案例和避坑指南,帮助工程师高效解决波形生成和参数可视化难题,提升模拟电路设计效率。

weixin_29260291的博客 424

伺服电机开发实战指南

伺服电机作为工业自动化的核心部件,正经历前所未有的技术革新。本文从基础原理出发,详细介绍了伺服电机的分类、工作原理和特性,分析了伺服电机系统组成与核心部件,探讨了企业级开发技术,包括控制算法、通信协议和故障诊断等高级功能,并提供了实战案例分析,从行业应用到具体开发步骤,展示了伺服电机的工程实现。通过深入理解伺服电机的原理、掌握开发技术、学习应用案例,可以实现伺服系统的高性能开发与应用。

全栈 1676

深度强化学习框架Ray|RLLib|Tune学习笔记

文章目录0 Ray深度强化学习框架概述1 Ray使用场景—多进程2 Ray使用场景—进程间通信3 Tune使用场景—调参4 RLLib使用场景—RL算法5 Ray、Tune和RLLib关系6 Ray系统架构(实现多进程和跨节点通信)6.1 Ray系统架构—概述6.2 Ray系统架构—内存管理7 Tune系统架构(实验资源分配+调参)8 RLLib系统架构(Trainer、Policy和Agent)8.1 Policy实现功能8.2 Trainer实现功能参考文献 0 Ray深度强化学习框架概述 Ray—

SL_World的博客 9323

innovus: 如何让两个generate clock balance skew group?

如题,在sdc约束中两个generate clock被设置到同一个clock group中,工具虽然会生成对应的两个skew group,但是阅读ccoot_spec发现工具并没有让两个skew group进行balance,这时就需要手动设置balance skew group。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 4049

RLlib简介

参考: https://ray.readthedocs.io/en/latest/rllib.html https://zhuanlan.zhihu.com/p/79613212 文章目录1. RLlib: 可扩展强化学习1.1. custom env example1.2. API documentation1.3. concepts and custom algorithms2. 一分钟熟悉R...

方小汪的博客 8282

【YOLOv8改进[Conv]】使用OREPA助力V8更优秀

使用OREPA助力V8更优秀,降低训练成本,在不引入任何推理时间成本的情况下提高深度模型的性能。

静谧、淡雅 1917

AIoT 在线工程实训平台案例——智能家居

AIoT 在线工程实训平台案例——智能家居的操作步骤

m0_53608652的博客 1430

Ray|RLLib|Tune学习笔记

Ray是一个分布式计算框架,提供了多进程通信和集群管理的功能,能够高效地利用多核CPU和多台机器的计算资源。Tune是基于Ray的超参数优化库,用于管理多个实验的运行和资源分配。RLLib是基于Ray和Tune的强化学习库,提供了多种强化学习算法的实现,并支持分布式训练。

hooksten的博客 696

<IBM DB2>《DB2 官方监控脚本 2022版本》

DB2 监控脚本

Else 的博客 670

Rllib学习[1] --rllib基本指令

讲述rllib中的基本操作

upr_rom的博客 4220

芒果YOLO11改进145:Loss损失函数KLD:即插即用 NeurIPS顶会论文,独家首发原创新颖|通过 Kullback-Leibler 散度学习用于目标检测的高精度边界框

旋转检测Loss损失函数KLD:即插即用 NeurIPS顶会论文,独家首发原创新颖|通过 Kullback-Leibler 散度学习用于目标检测的高精度边界框

包括YOLOv5、YOLOv7、YOLOv8等模型改进 565

【1】Python交叉编译到OpenHarmony标准系统运行(arm32位)

本文介绍如何Python语言如何在OpenHarmony标准系统运行,包括5.0r和4.1r以及4.0r,和未来版本的OpenHarmony版本上。 Python语言在OpenHarmony上使用,需要将Python解释器CPython移植到OpenHarmony标准系统。通过交叉编译的方式。

weixin_58069108的博客 927

RLlib学习

rllib学习 + tune 调整RL参数

upr_rom的博客 1844

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

RLlib Training APIs

RLlib Training APIs 文档内容

qq_42412225的博客 1224

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

强化学习rllib简明教程 ray

强化学习rllib简明教程 ray     之前说到强化 学习的库,推荐了tianshou,但是tianshou实现的功能还不够多,于是转向rllib,个人还是很期待tianshou的发展。     回到rllib,rllib是基于ray的一个工具(不知道这么说是不是合适),ray和rllib的关系就像,mllib之于spark,ray是个分布式的计算框架。     官网,文档。进入官网,

Lejeune的博客 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【强化学习】RLLib框架

        RLLib是构建在Ray分布式计算框架之上的强化学习库,它提供了高度集成和模块化的结构,方便用户进行强化学习算法的开发与实验。以下是一个RLLib框架的学习指南,帮助你快速上手并深入理解其工作原理。

大雨淅淅的博客 8187

ray.rllib 入门实践-5: 训练算法

前面的博客介绍了ray.rllib中算法的配置和构建,也包含了算法训练的代码。但是rllib中实现算法训练的方式不止一种,本博客对此进行介绍。

wzg2016的博客 1004

Melting Pot实战:基于RLlib的多智能体训练完整示例

Melting Pot是一个专为多智能体强化学习(MARL)设计的测试场景套件,提供了丰富的环境和工具来研究智能体之间的合作、竞争与社交行为。本文将带你通过实战案例,学习如何使用RLlib框架在Melting Pot中进行多智能体训练,从零开始构建你的第一个多智能体强化学习系统。 ## 📋 环境准备与安装 在开始训练前,需要准备好Melting Pot和RLlib的开发环境。以下是快速安装步

gitblog_00146的博客 722

RLlib - KEY CONCEPTS 文档内容翻译

RLlib中关键概念

qq_42412225的博客 619

使用tune.run怎么获取model summary的信息

使用rllib的时候,如果使用PPOTrainer或者某一个其他的trainer,在执行trainer.train()的时候,会打印model summary,也可以显式调用获取model summary的API,就像下面这样 >>> from ray.rllib.agents.ppo import PPOTrainer >>> trainer = PPOTrainer(env="CartPole-v0", config={"eager": True, "num_work

bug404 889

RLlib/Ray:踩坑记录

出现这种报错的原因是MultiDiscrete的取值范围是左闭右开。以第一个报错中的第十维为例,MultiDiscrete的取值范围是[0, 51),因此当observation对应维度为51时就会报错。

z3w97的博客 623

Ray项目RLlib容错与弹性训练机制深度解析

Ray项目RLlib容错与弹性训练机制深度解析 【免费下载链接】ray ray-project/ray: 是一个分布式计算框架,它没有使用数据库。适合用于大规模数据处理和机器学习任务的开发和实现,特别是对于需要使用分布式计算框架的场景。特点是分布式计算框架、无数据库。 ...

gitblog_00435的博客 523
上一篇: Anaconda如何切换国内镜像源
下一篇: ray-rllib使用实践 -- 1
wzg2016
博客等级 码龄10年 539粉丝 493原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值