这是一个用于比较强化学习算法表现的项目,目前先提供了一个可扩展的基础管线和统一调用流程。
main.py:统一 CLI 入口。breakout/pipeline/:公共编排层(算法发现、train/test/full 调度、运行元数据落盘)。breakout/algorithms/<algorithm>/train.py|test.py:算法实现标准入口。opt/:每次运行的产物输出目录(按算法、阶段、时间戳分层)。main.py 选择命令:train / test / full。breakout/algorithms/ 下自动发现算法(必须同时存在 train.py 和 test.py)。run(config)。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.pytest.pyREADME.mdrequirements.txt并且在 train.py / test.py 里暴露统一入口函数:
# train.py / test.py
from breakout.pipeline.types import TrainConfig, TestConfig, StageResult
def run(config) -> StageResult:
...
random_baseline:随机动作基线,用于验证管线和目录约定可用。