run_data_to_rl_pipeline.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. """
  2. ============================================================
  3. data_to_rl | 全流程入口脚本
  4. ------------------------------------------------------------
  5. 功能:
  6. 串行执行 data_to_rl 模块的全部数据准备流程,包括:
  7. 1. 强化学习状态空间范围提取
  8. 2. 强化学习 reset 状态先验池生成
  9. 设计原则:
  10. - 只负责“调度”,不包含任何业务逻辑
  11. - 所有参数均来自 data_to_rl_config.yaml
  12. - 工程师只需运行本脚本即可完成全部准备工作
  13. 使用方式:
  14. python run_data_to_rl_pipeline.py
  15. ============================================================
  16. """
  17. from pathlib import Path
  18. import time
  19. from state_space_bounds import extract_state_space_bounds
  20. from get_reset_pool import generate_reset_state_pool
  21. THIS_FILE = Path(__file__).resolve()
  22. UF_RL_ROOT = THIS_FILE.parents[1]
  23. def main():
  24. # --------------------------------------------------------
  25. # 配置文件路径(统一入口)
  26. # --------------------------------------------------------
  27. config_path = UF_RL_ROOT / "lankao" / "data_to_rl_config.yaml"
  28. print(f" 配置文件: {config_path}")
  29. print("======================================================\n")
  30. start_time = time.time()
  31. # --------------------------------------------------------
  32. # Step 1: 提取状态空间经验范围
  33. # --------------------------------------------------------
  34. print(">>> Step 1 / 2:提取强化学习状态空间范围")
  35. step_start = time.time()
  36. extract_state_space_bounds(config_path)
  37. print(
  38. f">>> Step 1 完成,用时 {time.time() - step_start:.2f} 秒\n"
  39. )
  40. # --------------------------------------------------------
  41. # Step 2: 生成 reset 状态先验池
  42. # --------------------------------------------------------
  43. print(">>> Step 2 / 2:生成 RL reset 状态先验池")
  44. step_start = time.time()
  45. generate_reset_state_pool(config_path)
  46. print(
  47. f">>> Step 2 完成,用时 {time.time() - step_start:.2f} 秒\n"
  48. )
  49. # --------------------------------------------------------
  50. # 总结
  51. # --------------------------------------------------------
  52. print("======================================================")
  53. print(" data_to_rl 数据准备流水线执行完成 ")
  54. print("------------------------------------------------------")
  55. print(f" 总耗时: {time.time() - start_time:.2f} 秒")
  56. print(" 输出内容包括:")
  57. print(" - state_space_bounds.csv (状态空间统计)")
  58. print(" - reset_state_pool.csv (reset 初始状态池)")
  59. print("======================================================")
  60. if __name__ == "__main__":
  61. main()