penalty_coeffs.py

这段代码实现了一个基于 惩罚系数(Penalty Coefficients)扫描 的实验,用于测试不同惩罚系数对强化学习算法(如 PPO)在 GreenLight 温室环境 中性能的影响。以下是代码的详细解释:


1. 代码结构

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

  1. 参数解析:

    • 使用 ArgumentParser 解析命令行参数(如环境 ID、配置名称、惩罚系数范围等)。

  2. 参数加载:

    • 加载环境参数(env_base_paramsenv_specific_paramsoptions)和模型参数(model_params)。

  3. 惩罚系数扫描:

    • 在指定的惩罚系数范围内生成一组值。

    • 对每个惩罚系数运行强化学习实验。

  4. 实验运行:

    • 使用 runExperiment 函数运行强化学习实验,并记录结果。


2. 核心功能

2.1 参数解析

  • ArgumentParser:

    • 解析命令行参数,包括环境 ID、配置名称、惩罚系数范围、实验设置等。

2.2 参数加载

  • load_env_params:

    • 加载温室环境的基本参数、特定参数和选项。

    • 返回 env_base_paramsenv_specific_paramsoptionsresult_columns

  • load_model_params:

    • 加载强化学习算法的参数。

    • 返回 model_params

2.3 惩罚系数扫描

  • np.linspace:

    • 在指定的惩罚系数范围内生成一组均匀分布的值。

    • 例如,惩罚系数在 [start_range, end_range] 范围内生成 n_values 个值。

2.4 实验运行

  • runExperiment:

    • 运行强化学习实验。

    • 支持多 CPU 并行训练、定期评估、结果记录和模型保存。


3. 代码的应用场景

  • 惩罚系数调优:

    • 用于测试不同惩罚系数对强化学习算法性能的影响。

    • 通过惩罚系数扫描,找到最优的惩罚系数配置。

  • 实验记录:

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

  • 模型训练:

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


4. 关键参数

4.1 命令行参数

  • env_id:

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

  • env_config_name:

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

  • project:

    • W&B 项目名称。

  • group:

    • W&B 运行分组。

  • algorithm:

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

  • start_rangeend_range:

    • 惩罚系数扫描的起始值和结束值。

  • n_values:

    • 惩罚系数扫描的取值数量。

  • n_evals:

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

  • num_cpus:

    • 并行训练的 CPU 数量。

  • n_eval_episodes:

    • 每次评估的 episode 数量。

  • total_timesteps:

    • 总训练时间步长。

  • SEED:

    • 随机种子,用于确保实验的可重复性。

4.2 环境参数

  • env_base_params:

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

  • env_specific_params:

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

  • options:

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

4.3 模型参数

  • model_params:

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

4.4 惩罚系数

  • coefficients:

    • start_rangeend_range 生成的均匀分布的惩罚系数值。


5. 示例

运行实验

bash
复制
python penalty_coefficients_sweep.py --env_id GreenLightHeatCO2 --env_config_name 5min_four_controls --project penalty-coeffs --group co2 --algorithm ppo --start_range 0 --end_range 1e-3 --n_values 11 --n_evals 1 --num_cpus 12 --n_eval_episodes 60 --total_timesteps 2_000_000 --SEED 666

输出结果

  • W&B 实验跟踪:

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

  • 模型保存:

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

  • 实验结果:

    • 记录每个惩罚系数的实验结果(如奖励、利润、违规次数等)。


6. 总结

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

暂无评论

发送评论 编辑评论


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