hp_tuning.py

这段代码实现了一个基于 W&B(Weights & Biases)超参数调优 的强化学习实验。它通过加载环境参数、模型参数和超参数配置,运行多个实验以找到最优的超参数组合。以下是代码的详细解释:


1. 代码结构

代码主要由以下几个部分组成:

  1. 参数解析:

    • 使用 ArgumentParser 解析命令行参数(如环境 ID、项目名称、配置文件名称等)。

  2. 超参数调优配置:

    • 加载超参数配置文件(YAML 文件),并设置 W&B 的超参数扫描配置。

  3. 训练函数:

    • 定义 train 函数,用于初始化 W&B 运行并调用 run_hp_experiment 函数。

  4. 实验运行函数:

    • 定义 run_hp_experiment 函数,用于初始化环境、模型和回调函数,并运行强化学习训练。

  5. W&B 超参数扫描:

    • 使用 wandb.sweepwandb.agent 启动超参数扫描。


2. 核心功能

2.1 参数解析

  • ArgumentParser:

    • 解析命令行参数,包括环境 ID、项目名称、配置文件名称、总时间步长等。

2.2 超参数调优配置

  • sweep_config:

    • 定义 W&B 超参数扫描的配置,包括扫描方法(如 bayes)、目标指标(如 eval/mean_reward)和超参数范围。

  • parameters:

    • 从 YAML 文件中加载超参数配置。

2.3 训练函数

  • train:

    • 初始化 W&B 运行。

    • 设置模型参数并调用 run_hp_experiment 函数运行实验。

2.4 实验运行函数

  • run_hp_experiment:

    • 初始化训练环境和评估环境。

    • 设置回调函数(如 TensorboardCallbackWandbCallback)。

    • 初始化 PPO 模型并运行训练。

2.5 W&B 超参数扫描

  • wandb.sweep:

    • 创建 W&B 超参数扫描任务。

  • wandb.agent:

    • 启动超参数扫描,运行多个实验。


3. 代码的应用场景

  • 超参数调优:

    • 用于测试不同超参数组合对强化学习算法性能的影响。

    • 通过 W&B 的超参数扫描功能,找到最优的超参数配置。

  • 实验记录:

    • 使用 W&B 记录实验过程和结果。

  • 模型训练:

    • 训练强化学习模型,并保存训练好的模型和归一化环境。


4. 关键参数

4.1 命令行参数

  • env_id:

    • 温室环境的 ID(如 GreenLightHeatCO2)。

  • project:

    • W&B 项目名称。

  • group:

    • W&B 运行分组。

  • env_config_name:

    • 环境配置文件的名称(如 5min_four_controls)。

  • tuning_file:

    • 超参数配置文件的名称(如 5-min-four-controls.yml)。

  • total_timesteps:

    • 总训练时间步长。

  • n_eval_episodes:

    • 每次评估的 episode 数量。

  • n_evals:

    • 训练过程中评估的次数。

  • method:

    • 超参数扫描方法(如 bayesrandom 等)。

  • algorithm:

    • 强化学习算法(如 ppo)。

4.2 环境参数

  • env_base_params:

    • 温室环境的基本参数(如时间步长、状态数量、控制输入数量等)。

  • env_specific_params:

    • 温室环境的特定参数(如作物状态、价格参数等)。

  • options:

    • 温室环境的选项(如生长年份、起始日期等)。

4.3 模型参数

  • model_params:

    • 强化学习算法的参数(如学习率、折扣因子等)。

4.4 超参数配置

  • parameters:

    • 从 YAML 文件中加载的超参数配置(如学习率、批量大小等)。


5. 示例

运行实验

bash
复制
python hyperparameter_tuning.py --env_id GreenLightHeatCO2 --project tuning-5-min --group testing-evaluation --env_config_name 5min_four_controls --tuning_file 5-min-four-controls.yml --total_timesteps 1_000_000 --n_eval_episodes 60 --n_evals 1 --method bayes --algorithm ppo

输出结果

  • W&B 实验跟踪:

    • 在 W&B 平台上查看超参数扫描实验的过程和结果。

  • 模型保存:

    • 保存训练好的模型和归一化环境。

  • 实验结果:

    • 记录每个超参数组合的实验结果(如奖励、利润、违规次数等)。


6. 总结

这段代码实现了一个基于 W&B 超参数调优的强化学习实验,用于测试不同超参数组合对强化学习算法在 GreenLight 温室环境中性能的影响。通过加载环境参数、模型参数和超参数配置,运行多个实验并记录结果,可以高效地进行超参数调优和实验分析。代码支持 W&B 实验跟踪和多 CPU 并行训练,适用于温室控制策略优化和强化学习研究。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇