LeRobot 训练监控完整指南:WandB 指标追踪、Rerun 实时可视化与评估视频导出
【免费下载链接】lerobot🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot
策略训练一旦启动,你通常只能在终端里翻 loss 数字,机器人到底学没学会基本靠猜。本文覆盖 LeRobot 训练可视化的三个环节,按 WandB 指标配置、Rerun 实时监控接入、评估视频导出与归档的顺序展开。
LeRobot 训练监控能力全景
LeRobot 把"训练黑盒"拆成三条可视化通路:WandB 负责聚合训练指标并归档模型工件,Rerun 负责遥操作与录制时的实时观测流,评估视频则把策略在仿真环境里的真实执行过程录下来供事后回放。三者分别挂在训练主循环、控制循环脚本和评估函数上,你不需要自己搭日志管道。
| 能力 | 解决的问题 | 对应源码路径 |
|---|---|---|
| WandB 指标追踪 | loss、学习率、成功率等训练曲线无法直观对比 | src/lerobot/common/wandb_utils.py |
| Rerun 实时可视化 | 遥操作、录制时看不到传感器画面与关节动作 | src/lerobot/utils/visualization_utils.py |
| 评估视频录制 | 策略在环境里执行得如何缺乏直观证据 | src/lerobot/scripts/lerobot_eval.py |
核心操作流程:从 WandB 配置到评估视频导出
三条通路都不需要改动训练代码本身,调用点已内置在脚本里,你只需要打开配置开关并理解各自的数据流向。
配置 WandB 训练指标日志
WandB 默认是关闭的,启动训练后只有本地日志可看。打开它只需在lerobot-train命令上补几个参数,可用的键值都在 src/lerobot/configs/default.py 的WandBConfig中定义。
# 配置定义见 src/lerobot/configs/default.py 的 WandBConfig lerobot-train --policy.type=act --dataset.repo_id=... \ --wandb.enable=true \ --wandb.project=lerobot-training \ --wandb.entity=your-team \ --wandb.mode=online --wandb.add_tags=true这一步完成后,终端里会打印一条 run 链接。WandBLogger在 src/lerobot/common/wandb_utils.py 中实现,enable、project、entity是最常用的三个键;mode可选online、offline、disabled,add_tags开启后每个 run 会自动带上策略类型、seed、数据集名等标签,方便事后筛选对比。
接入 Rerun 实时数据流
指标回答"训练得好不好",Rerun 回答"机器人此刻在干什么"。录制、遥操作与 rollout 脚本已集成init_visualization和log_visualization_data,把 display mode 指定为rerun,观测画面、标量关节值和动作指令就会实时推送到 Rerun 查看器。
# src/lerobot/scripts/lerobot_record.py: 录制/遥操作控制循环 from lerobot.utils.visualization_utils import init_visualization, log_visualization_data init_visualization("rerun", session_name="recording") ... # 控制循环内每个时间步 log_visualization_data("rerun", observation=observation, action=action)Rerun 后端实现在 src/lerobot/utils/rerun_visualization.py:标量进时间序列视图,摄像头画面自动从 CHW 转成 HWC 并独占一个空间视图,单通道数组按深度图渲染。依赖rerun-sdk,安装lerobot[viz]extra 后即可使用。
导出评估视频并同步到 WandB
当训练进入环境评估阶段,你会注意到eval_policy_all除了统计成功率,还会把前几个 episode 逐帧渲染成 mp4,落在输出目录的eval子目录下;WandBLogger.log_video再把其中一条上传到 WandB,与该 step 的指标自动对齐。
# src/lerobot/scripts/lerobot_train.py: env_eval 到达时触发 eval_info = eval_policy_all( envs=eval_env, policy=..., n_episodes=cfg.eval.n_episodes, videos_dir=cfg.output_dir / "eval" / f"videos_step_{step_id}", max_episodes_rendered=4, ) if wandb_logger: wandb_logger.log_video(eval_info["overall"]["video_paths"][0], step, mode="eval")n_episodes控制每个任务的评估回合数,max_episodes_rendered控制实际渲染成视频的 episode 上限,默认取 4,避免编码开销拖慢评估节奏。
进阶技巧
- 如果你需要横向对比多组超参数:保持add_tags默认开启,多个 run 会带上策略类型、seed、数据集名等标签,在 WandB 里按 tag 筛选比按项目翻找快得多。
- 一个比较省事的思路是训练机先跑
--wandb.mode=offline,日志缓存在本地目录,训练结束后再统一同步,断网环境也不会丢数据。 - 如果 Rerun 推流在远程机器上卡顿,可以给
init_visualization传ip/port指向远端 server,或在log_visualization_data里打开compress_images压缩图像降带宽。
延伸阅读
- docs/source/il_robots.mdx:在真实机器人遥操作与录制脚本中使用 Rerun 的完整示例
- src/lerobot/utils/visualization_utils.py:rerun / foxglove 两种可视化后端的统一分发入口
- examples/training/train_with_streaming.py:流式训练场景下如何复用同一套日志配置
下一次启动lerobot-train时,不妨顺手把wandb.enable打开,让指标、实时画面和评估视频三条通路同时工作起来。
【免费下载链接】lerobot🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考