logo
0
0
WeChat Login

BreakOut Game

这是一个用于比较强化学习算法表现的项目,目前先提供了一个可扩展的基础管线统一调用流程

当前目录结构

  • main.py:统一 CLI 入口。
  • breakout/pipeline/:公共编排层(算法发现、train/test/full 调度、运行元数据落盘)。
  • breakout/algorithms/<algorithm>/train.py|test.py:算法实现标准入口。
  • opt/:每次运行的产物输出目录(按算法、阶段、时间戳分层)。

统一调用流程

  1. 使用 main.py 选择命令:train / test / full
  2. 管线在 breakout/algorithms/ 下自动发现算法(必须同时存在 train.pytest.py)。
  3. 调用算法模块中的 run(config)
  4. 每次运行都会自动写入:
  • metrics.json(算法阶段指标)
  • run_metadata.json(配置、结果摘要、耗时)
  • model.json(仅 train 阶段,按算法实现决定)

命令示例

python main.py list-algorithms python main.py train --algorithm random_baseline --env-id CartPole-v1 --episodes 20 python main.py test --algorithm random_baseline --env-id CartPole-v1 --episodes 20 python main.py full --algorithm random_baseline --env-id CartPole-v1 --train-episodes 50 --test-episodes 20

新增算法接入规范

每个算法在 breakout/algorithms/<your_algo>/ 中至少包含:

  • train.py
  • test.py
  • README.md
  • requirements.txt

并且在 train.py / test.py 里暴露统一入口函数:

# train.py / test.py from breakout.pipeline.types import TrainConfig, TestConfig, StageResult def run(config) -> StageResult: ...

已提供示例算法

  • random_baseline:随机动作基线,用于验证管线和目录约定可用。