ray.rllib 入门实践-3: 配置参数列表

RLlib一:RLlib入门 强化学习库,RLlib入门 阅读详情

前言:

        上一个博客详细介绍了配置rllib算法的几种方式,并推荐了用 AlgorithmConfig 类去创建配置对象,然后再配置对象中,根据代码提示配置相关参数。AlgorithmConfig 中的可配置参数有很多, 使用时可以去对应的源码查看有哪些配置选项,

        本博客对配置选项做了一些梳理。并对其中最常用的一些成员变量以黄色高亮显示。

        本问主要来自源码解读。

环境配置:

        torch==2.5.1

        ray==2.10.0

        ray[rllib]==2.10.0

        ray[tune]==2.10.0

        ray[serve]==2.10.0

        numpy==1.23.0

        python==3.9.18

一、 AlgorithmConfig 子模块分组 

        RLlib 中有非常多的配置, 为了便于管理, 把所有配置划分为以下几组:

  • training: 训练相关参数组
  • environment: 环境相关参数组
  • deep learning framework: 深度学习的相关框架选择, tf2 或者 torch
  • rollout worker : 部署工作选项
  • evaluation : 评估相关超参数
  • exploration: 探索选项
  • options for training with offline data: 使用离线数据进行训练的选项
  • options for training multiple agents : 多智能体训练的相关设置
  • reporting 报告选项
  • options for saving and restoring checkpoints : 保存和回复检查点的选项
  • debugging : debug 相关选项
  • options for adding callbacks to algorithms, 添加算法回调的相关选项
  • resources : 计算资源使用设置选项
  • options for external features : 实验功能选项

二、 几个重要子模块的详细介绍

1. AlgorithmConfig.training() 

        AlgorithmConfig.training() 里面有许多可配置参数, 具体如下:

  • gamma: float, markov 决策过程的折扣因子, 奖励值的折扣因子。
  • lr : 学习率
  • grad_clip : 是否使用梯度裁剪。 根据grad_clip_by的设置裁剪梯度。
  • grad_clip_by : 如果grad_clip不是None, 基于这个参数裁剪梯度。
  • train_batch_size: 训练批量大小
  • model: 传递到策略模型的参数。也可以通过成员变量的方式访问。
  • optimizer: 传递给策略模型的参数。
  • max_requests_in_fighter_per_sample_worker : 对每个采样进程的最大请求数。
  • Returns:  返回更新的AlgorithmConfig对象。

2. AlgorithmConfig.environment()

        用于设置环境

  • env: 环境说明符
  • env_config: dict, 传递给env, 默认附加参数:num_rollout_workers, worker_index, vector_index, remote
  • Observation_space : 观测空间
  • action_space : 策略的动作空间
  • env_task_fn : 一个可调用函数,将最后一个训练结果、基本环境和环境上下文作为参数, 返回一个新任务来设置环境。
  • render_env : 是否渲染环境, 如果True, 尝试在本地工作线程或worker1上渲染环境。
  • clip_rewards: 是否在policy的后处理期间, 裁剪奖励。
  • normalize_actions: 是否把产生的动作归一化到动作空间范围内。
  • clip_actions: 应该被弃用
  • disable_env_checking: if true, 禁用环境预检查模块。
  • is_atari : 用于显示指定环境是否为atrai环境。
  • auto_wrap_old_gym_envs : 是否自动包装旧gym环境。
  • Return : 返回更新的AlgorithmConfig对象。

3. AlgorithmConfig.framework()

  • framework: {"torch", "tf2} 选择框架
  • eager_tracing: 在 eager模式下启用跟踪, 提升性能,但稍微不利于调试。
  • eager_max_retraces:
  • tf_session_args: 默认情况下把tf设置为单进程操作。
  • torch_compile_learner: 如果为True,则编译学习器上的TorchRLModule上的FORWARD_TRAIN方法。如果未指定,则默认为在学习者上编译前向训练。
  • torch_compile_learner_what_to_compile – TorchCompileWhatToCompile 模式指定如果 torch_compile_learner 为 True 则在学习器端编译什么。有关其使用的详细信息和建议,请参阅 TorchCompileWhatToCompile。
  • torch_compile_learner_dynamo_backend-torch 计算器模式使用的学习者。
  • torch_compile_worker – 如果为 True,则编译工作人员上 TorchRLModule 的前向探索和推理方法。如果未指定,默认情况下不会在工作线程上编译前向方法,因为回溯可能会很昂贵。
  • torch_compile_worker_dynamo_backend – 用于工作人员的 torch 计算器后端。
  • torch_compile_worker_dynamo_mode – 用于工作人员的 torch 计算器模式。
  • Returns - 返回此更新的 AlgorithmConfig 对象

4. AlgorithmConfig.rollouts()  

       用于指定rollout_worker

  • env_runner_cls : 用于环境部署的envRunner类
  • num_rollout_worker : 为并行采样创建的rollout-worker的数量, 为 0 则强制在本地工作线程,
  • num_env_per_worker : 每个进程上运行环境的个数
  • sample_collector : SampleCollector 类, 用于收集和检索环、 模型和采样数据。 重写 SampleCollector  基类可以实现自己的收集、缓冲、检索逻辑。
  • sample_async : 使用后台线程进行采样, 通常不建议打开。
  • enable_connections : 是否使用基于connector的环境运行器, 以便obs的所有的预处理和操作的后处理都在代理和操作连接器中完成。
  • use_worker_filter_stats : 是否将filter的更新从中央filter(本地filter)推送到远程worker的filter.
  • rollout_framework_length : 在推出期间将剧集分为多个步骤的片段。这种大小的轨迹是从 rollout 工作线程中收集的, 并组合成更大的一批 train_batch_size 来进行学习。例如,给定 rollout_fragment_length=100 和 train_batch_size=1000:1. RLlib 从 rollout 工作线程收集 10 个片段,每个片段有 100 个步骤。2. 这些片段被连接起来,我们执行一个 SGD 纪元。当每个工作人员使用多个环境时,片段大小将乘以 num_envs_per_worker。这是因为我们并行地从多个环境收集步骤。例如,如果 num_envs_per_worker=5,则部署工作人员将以 5*100 = 500 个步骤的块形式返回经验。这里的数据流可能因算法而异。例如,PPO 进一步将训练批次划分为多个小批次,以实现多轮 SGD。设置为“auto”以使 RLlib 计算精确的 rollout_fragment_length 以匹配给定的批量大小。
  • batch_mode : 如何使用 EnvRunner 构建单独的批次。
  • remote_worker_envs : 当设置一个进程中运行多个env时, 决定是否在远程进程中而不是同一进程中创建新的环境。
  • remote_env_batch_wait_ms: 轮询环境时远程worker的等待超时时间。
  • valid_worker_after_construction: 是否检查每个远程 worker 是否健康。
  • preprocessor_pref : 是否使用rllib或deepmind的预处理器。
  • compress_observations : 是否 LZ4 压缩在rollout期间收集的sampleBatches 中的各个观测值。
  • enable_tf1_exec_eagerly – 显式告诉 rollout Worker 启用 TF eager 执行。例如,当框架是“torch”,但需要恢复 TF2 策略以进行评估或基于联盟的目的时,这非常有用。
  • Sampler_perf_stats_ema_coef – 如果指定,性能统计数据以 EMA 为单位。这是新数据点对平均值的贡献程度的系数。默认值为“无”,它使用简单的全局平均值。 EMA更新规则为:updated = (1 - ema_coef) * old + ema_coef * new
  • Returns - 此更新的 AlgorithmConfig 对象。

5. algorithmConfig.evaluation() 

  • evaluation_interval: 在训练过程中,间隔多少个episode执行一次evaluation.
  • evaluation_duration: 在训练过程中,间隔多长时间执行一次evaluation. 持续时间的单位可以时episode, 或 timesteps.
  • evaluation_duration_unit: 配合 evaluation_duration使用, episode 或 timesteps.
  • evaluation_num_workers: evaluation使用的worker数。 默认为0. evaluation会额外增加工作进程。
  • evaluation_config: 将额外的参数传递给evaluation的创建者。
  • evaluation_sample_timeout_s – ray.get 调用远程评估工作程序的sample() 方法的超时(以秒为单位)。 在此之后,用户将收到警告和有关如何解决问题的说明。这可以是为了确保剧集结束、增加超时或切换到 evaluation_duration_unit=timesteps。
  • evaluation_parallel_to_training – 是否使用线程与 Algorithm.train() 调用并行运行评估。默认=假。例如。 evaluation_interval=2 -> 对于每个其他训练迭代,Algorithm.train() 和 Algorithm.evaluate()调用并行运行。注意:这是实验性的。可能的陷阱可能是评估循环开始时权重同步的竞争条件。
  • evaluation_config – 典型用法是将额外的参数传递给评估环境创建者,并通过计算确定性操作来禁用探索。重要提示:策略梯度算法能够找到最佳策略,即使这是随机策略。 此处设置“explore=False”将导致评估工作人员不使用此最优策略!
  • off_policy_estimation_methods – 指定如何评估当前策略以及任何可选配置参数。这仅在阅读离线体验时有效(“输入”不是“采样器”)。可用键: {ope_method_name: {“type”: ope_type, …}} 其中 ope_method_name 是用户定义的字符串,用于保存 OPE 结果,ope_type 可以是 OffPolicyEstimator 的任何子类,例如ray.rllib.offline.estimators.is::ImportanceSampling或您自己的自定义子类,或子类的完整类路径。您还可以添加其他配置参数以传递给字典中的 OffPolicyEstimator,例如{“qreg_dr”:{“类型”:DoublyRobust,“q_model_type”:“qreg”,“k”:5}}
  • ope_split_batch_by_episode – 是否使用SampleBatch.split_by_episode()将输入批次分割为多个剧集以在估计ope指标之前。在bandits的情况下,你应该将此设置为False以提高ope评估速度。在bandits的情况下, 不分割剧集也是可以的,因为每个记录已经是一个时间步长了。默认值为True
  • evaluation_num_workers – 用于评估的并行工作线程数。请注意,默认设置为零,这意味着评估将在算法进程中运行(仅当评估间隔不为 None 时)。如果增加此值,则会增加算法的 Ray 资源使用量,因为评估工作线程是与部署工作线程(用于对训练数据进行采样)分开创建的。
  • custom_evaluation_function – 自定义评估方法。这必须是签名的函数(algo:算法,eval_workers:WorkerSet)->指标:dict。请参阅 Algorithm.evaluate() 方法以查看默认实现。该算法保证所有 eval 工作线程在调用此函数之前都具有最新的策略状态。
  • always_attach_evaluation_results – 确保最新的可用评估结果始终附加到步骤结果字典中。 如果 Tune 或其他一些元控制器需要始终访问评估指标,这可能很有用。
  • enable_async_evaluation – 如果为 True,则为评估工作人员使用 AsyncRequestsManager,并使用此管理器向评估工作人员发送sample() 请求。这样,算法对于长时间运行的事件和/或失败(和重新启动)的工作程序变得更加稳健。
  • Returns - 此更新的 AlgorithmConfig 对象。

6. AlgorithmConfig.exploration()

        指定探索选项。

  • explore: 默认探索行为。 设置为None 表示没有探索行为, 例如用于evaluation.
  • explore_config : 指定 Exploration对象的配置。
  • Returns: 返回此更新的 AlgorithmConfig 对象。

7. AlgorithmConfig.resources()

  • num_gpus: 为这个算法分配多少GPU.
  • num_cpus_per_worker: 为每个进程(worker)分配多少cpu
  • num_gpus_per_worker: 为每个进程(worker)分配多少GPU,可以是小数
  • num_cpus_for_local_worker: 为本地运行的进程分配多少cpu.
  • num_learner_workers: 有多少个进程用于训练。
  • num_cpus_per_learner_worker:为 每个用于训练的进程分配多少cpu.
  • num_gpus_per_learner_worker: 为 每个用于训练的进程分配多少gpu.
  • local_gpu_idx: 如果 num_gpus_per_learner_worker>0,并且'num_learner_workers'<2,则该GPU 索引将用于训练过程。这是CUDA 可用设备列表中的索引。
  • custom_resources_per_worker: Optional[dict] = NotProvided,
  • placement_strategy: Optional[str] = NotProvided,

Rllib学习 - [4] - AlgorithmConfig详细介绍 [Pytorch版] rllib中AlgorithmConfig详细介绍 阅读详情

相关推荐

RLlib多智能体开发指南:用Ray 2.53实现星际争霸式对战AI

本文详细介绍了如何使用RLlib和Ray 2.53框架构建复杂的多智能体强化学习系统,以开发类似《星际争霸》的对战AI。内容涵盖从PettingZoo环境集成、多智能体策略配置、自定义模型设计,到利用Ray集群进行分布式训练与加速的完整流程,为开发高性能、可扩展的游戏AI提供了实践指南。

weixin_29279047的博客 377

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

讲述rllib中的基本操作

upr_rom的博客 4220

RLlib+CARLA自动驾驶仿真训练实战:高鲁棒分布式强化学习流水线

强化学习(RL)在自动驾驶决策中的落地,核心挑战在于仿真环境与训练框架的深度协同。CARLA作为高保真城市驾驶仿真平台,提供语义分割、LiDAR、多相机及物理引擎等关键能力;而RLlib依托Ray构建的分布式Actor-Critic架构,天然支持异步rollout、多智能体协同与弹性容错——二者结合,解决了PyTorch或Stable-Baselines3原生实现中常见的训练不稳定、reward稀疏、worker频繁崩溃等工程痛点。该技术路径已广泛应用于高校算法验证、车企闭环测试与机器人创业公司的低成本路测

davy57345的博客 442

ray.rllib 入门实践-2:配置算法

ray.rllib的算法配置方式有多种,网上的不同教程各不相同,有的互不兼容,本文汇总罗列了多种算法配置方式,给出推荐,并在最后给出可运行代码。

wzg2016的博客 1083

Isaac Gym Preview 3 稳定安装指南:Ubuntu+CUDA 11.3–11.8+Python 3.10 全流程

物理仿真引擎是强化学习算法验证与机器人策略训练的核心基础设施,其底层依赖 GPU 加速、CUDA 运行时与 Python ABI 的严格对齐。Isaac Gym 作为 NVIDIA 官方推出的高性能仿真平台,Preview 3 版本因其静态编译的 CUDA kernel、明确的 CUDA 11.3–11.8 支持区间及对 Ubuntu 20.04/22.04 的完整 ABI 兼容性,成为当前科研与工程落地中最稳定可靠的生产级选择。它规避了 Preview 4 的动态加载缺陷和 CUDA 12.x 的兼容黑洞

380

利用Ray在Python中加速深度学习训练

在深度学习领域,训练模型往往需要大量的计算资源和时间。随着数据集的不断增大和模型复杂度的提升,传统的单机训练方式已经难以满足需求。本文章的目的是介绍如何利用Ray这个强大的分布式计算框架在Python中加速深度学习训练。我们将涵盖Ray的基本概念、核心原理、具体的算法实现、实际应用场景以及相关的工具和资源推荐等方面,旨在让读者全面了解并掌握如何使用Ray来提高深度学习训练的效率。本文将按照以下结构进行组织:首先介绍Ray的核心概念和相关联系,包括其架构和工作原理;

AI Python 编程之道的博客 871

Ray 分布式计算 | 从入门到实践

Ray 是一个强大的分布式计算框架,它让 Python 开发者能够轻松地将单机代码扩展到分布式环境。**核心概念**: - **Task(任务)**:通过 `@ray.remote` 装饰器,可以将普通 Python 函数转换为分布式任务,实现无状态的并行计算 - **Actor(角色)**:为分布式环境提供有状态计算的抽象,支持面向对象的并行编程模型 - **Object Store(对象存储)**:Ray 的分布式共享内存系统,实现高效的跨节点数据共享和传输本教程分为三个部分内容:1. 通过示例讲解

RexWang 的博客 3432

4、深入了解Ray:分布式计算的强大工具

本文深入介绍了Ray这一强大的分布式计算框架,涵盖其生态系统、核心组件及实际应用。文章详细解析了Ray的主要库如Ray Tune、RLlib、Train等的功能与集成能力,阐述了Ray如何通过Ray Core API简化分布式编程,并克服Python GIL带来的并发限制。通过具体代码示例,展示了任务并行化、对象引用机制以及链式任务的实现方式。同时介绍了Ray的三层架构与系统组件,突出了其灵活性、可扩展性与易用性,最后展望了Ray在机器学习与大规模计算中的广泛应用前景。

app77的博客 97

Ray RLlib 架构入门指导

本文介绍了RLlib的核心架构和基本使用方法。主要内容包括: RLlib是构建在Ray上的可扩展强化学习库,通过分离采样和学习过程实现分布式训练。 核心架构包含Algorithm运行时、EnvRunner负责采样、Learner负责学习,通过RLModule和Episode实现解耦。 关键组件:AlgorithmConfig/Algorithm负责配置和运行,EnvRunner与环境交互收集数据,Learner更新模型,RLModule封装神经网络。 训练流程:EnvRunner采样生成Episode →

Keep Learning 245

Calibre license失效的解决方法

Calibre license失效的解决方法

qq_45354630的博客 6481

开发者的避坑指南:在Apple Silicon Mac上构建RocketMQ Python客户端的完整心路历程

本文详细记录了在Apple Silicon Mac上构建RocketMQ Python客户端的完整过程,重点解决了架构兼容性问题。通过源码编译rocketmq-client-cpp库,修复构建脚本和CMake配置,最终成功在M2芯片MacBook Pro上部署RocketMQ Python客户端,为开发者提供了实用的避坑指南。

Pepper的专栏 696

Ray项目RLlib核心概念解析:从算法到环境的完整指南

Ray项目RLlib核心概念解析:从算法到环境的完整指南 【免费下载链接】ray ray-project/ray: 是一个分布式计算框架,它没有使用数据库。适合用于大规模数据处理和机器学习任务的开发和实现,特别是对于需要使用分布式计算框架的场景。特点是分布式计算框架、无数据库。 ...

gitblog_00202的博客 591

WebUI自动化测试框架搭建(python+pytest+selenium+allure)

将鼠标移动到要定位的元素上面>右键>点击“检查”>在元素代码上右键>复制>复制XPath。

m0_63729339的博客 1281

Ray项目中的RLlib MetricsLogger深度解析:强化学习指标记录利器

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

gitblog_00486的博客 345

Palantir 产品架构深度解析:从本体到AI的决策智能平台

本文深度解析了Palantir决策智能平台的核心产品架构。其核心在于构建企业级的“本体”(Ontology),即业务世界的“数字孪生”,通过数据、逻辑、操作三层抽象统一语义。平台以此为基础,通过Foundry构建数字孪生,并通过AIP(人工智能平台)实现本体增强生成(OAG),将AI深度融入业务,形成从数据感知、智能分析到行动执行的完整决策闭环。

ooo22的博客 734

【学习系列】SAP RAP 16:RAP应用部署集成至Fiori Launchpad 【On-Premise】

本文详细介绍了如何将开发完成的RAP应用部署到S4HANA 2023 On-Premise环境并集成到Fiori Launchpad的完整流程。主要内容包括:1)通过ADT工具创建Fiori项目并配置外部IDE(VSCode);2)使用npm命令部署应用到系统;3)通过事务代码创建语义对象、磁贴目录和目标映射;4)配置PFCG角色分配;5)补充了部署失败解决方案、翻译问题处理、自定义主题设置以及登录页面LOGO修改等内容。文章提供了step-by-step的操作指南,帮助开发者将预览模式的应用正式部署到生产

DeveloperMrMeng的博客 633

Ray和RLlib用于快速并行强化学习

作者|Christian Hubbs 编译|VK 来源|Towards Data Science Ray不仅仅是一个用于多处理的库,Ray的真正力量来自于RLlib和Tune库,它们利用了强化学习的这种能力。它使你能够将训练扩展到大型分布式服务器,或者利用并行化特性来更有效地使用你自己的笔记本电脑进行训练。 我们展示了如何使用Ray和RLlib在OpenAI Gym上构建一个自定义的强化学习环境。 一个RLlib教程 一旦你用pip install ray[rllib]安装了Ray和RLlib,你就可以用命

TensorFlowNews 4676

PyTorch实战(19)——变分自编码器(Variational Autoencoder,VAE)

变分自编码器 (Variational Autoencoder, VAE) 是一种结合了自编码器和概率建模的生成模型,通过编码器将输入数据映射到潜在空间中的概率分布,并通过解码器将从潜在空间采样得到的潜在变量映射回原始数据空间,实现了数据的生成和特征学习。本节中,将介绍变分自编码器的基本概念,并使用 PyTorch 实现变分自编码器生成新图像。

盼小辉丶的博客 2879

Python强化学习实战:PyTorch与RLlib的分布式训练优化

凌晨三点的启示 我仍记得那个充满咖啡因的夜晚——监视器上DQN智能体在Breakout游戏中笨拙地接球。经过48小时训练,它的最高分停留在可怜的32分。当GPU风扇发出悲鸣时,一个念头击中了我:单机训练的算力天花板,正是阻碍智能体进化的隐形牢笼。这场顿悟开启了我和分布式强化学习的深度对话。理论风暴:强化学习的策略梯度定理(Policy Gradient Theorem)指出,智能体策略的优化方向由轨迹回报的期望梯度决定: 但当状态空间维度爆炸(如Atari游戏的$10^{12677}$种状态),单机训练如

司徒鸿的博客 1302

LeRobot 入门教程(二)强化学习训练及 SmolVLA 模型微调

本文介绍了LeRobot框架中基于人类在环的样本高效强化学习(HIL-SERL)工作流,包含真实机器人训练和模拟环境训练两大模块。在真实机器人部分,详细说明了从配置设置、工作空间边界确定、演示数据收集、奖励分类器训练到演员-学习者架构部署的全流程,并强调了人类干预的关键作用。同时介绍了适用于模拟训练的gym_hil环境及其配置使用方法。最后,文章提供了微调SmolVLA基础模型的指南,包括数据集收集、微调步骤和模型评估方法。该工作流实现了人机协作的高效强化学习,适用于各类机器人操作任务。

2506_90492529的博客 3896

【WRF-Urban数据集】 WRF 模型城市冠层参数 GloUCP 的使用

【数据集】 WRF 模型城市冠层参数 GloUCP 的使用

WW、forever的博客 478

Ray Tune相关API介绍

1. 注册可训练的函数或类 ray.tune.register_trainable(name, trainable) 参数: name (str) - 注册的方法或函数名。 trainable (obj) - 函数或tune.Trainable类。函数必须采用(config, status_reporter)作为参数,并且在注册的过程中自动转换为类。   2. 构造ex...

xl.zhang的博客 3571

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Ray----Tune(5):Tune包中的类和函数参考

ray.tune ray.tune.grid_search(values) 用于指定值上的网格搜索的快捷方法。 参数: values –参数将被网格化的迭代器。 ray.tune.register_env(name, env_creator) 注册一个自定义环境,以便与RLlib一起使用。 参数: name (str) –注册的名称。 env_cre...

weixin_43255962的博客 5398

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

强化学习工业落地五篇核心论文实战指南

强化学习(RL)作为智能决策的核心范式,其理论与工程实践长期存在断层。从马尔可夫决策过程(MDP)建模到策略优化,关键在于理解算法如何解决样本效率、环境非平稳性与安全约束等工业瓶颈。深度Q网络(DQN)确立了函数逼近基础,A3C提升了分布式训练鲁棒性,PPO以clip机制保障更新稳定性,SAC通过熵正则化平衡探索与利用,Rainbow则集成多维改进形成高适配基线。这些工作共同构成现代工业RL系统80%的代码骨架,广泛应用于推荐系统、智能制造与物流调度等场景。本文聚焦五篇高迁移性、可模块化、易调试的奠基性论文

weixin_30357231的博客 441

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

LXGW WenKai 开源中文字体指南:免费商用,2万余字

霞鹜文楷 LXGW WenKai 是基于 Klee One 衍生的开源中文字体,SIL OFL 1.1 授权,免费商用,日常显示和代码场景都能用。想给手机或海报换一套带笔锋的楷体,又怕流传的拼凑楷体版权说不清,它就是授权链路干净的替代选择。 ## 上手前先看这几条 🧾 - **授权**:SIL OFL 1.1,个人与企业自由商用,无需付费、无需署名,全文见 [OFL.txt](https:/

gitblog_00376的博客 736

RLHive 开源项目教程

RLHive 开源项目教程 1、项目介绍 RLHive 是一个旨在促进强化学习研究的框架。它提供了运行完整的强化学习实验所需的组件,支持单代理和多代理环境。RLHive 设计为可读性强且易于扩展,允许用户快速运行和实验他们自己的想法。完整的文档和教程可在 RLHive 官方文档 中找到。 2、项目快速启动 安装 RLHive 首先,通过 pip 安装 RLHive 基本包: pip install...

gitblog_00584的博客 510
上一篇: ray.rllib 入门实践-2:配置算法
下一篇: ray.rllib 入门实践-4: 构建算法
wzg2016
博客等级 码龄10年 539粉丝 493原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值