TensorBoard 使用教程
适配你宇树 G1 人形、Go2 四足训练,分三部分:启动命令、面板指标详解、曲线变化对应训练状态。
一、TensorBoard 启动与基础操作
1. 日志目录说明
训练脚本执行后,会自动生成日志文件夹,默认两种命名:
-
runs/(老版本) -
logs/xxx(新版本,带时间戳、任务名区分多组实验)
2. 终端启动命令(Ubuntu 无头训练通用)
# 进入训练项目根目录
cd ~/unitree_rl_gym
# 读取全部日志
tensorboard --logdir=runs
# 或指定logs文件夹(本人是这个)
tensorboard --logdir=logs/
启动成功输出:TensorBoard 2.x.x at http://localhost:6006
打开浏览器输入 http://127.0.0.1:6006 进入可视化页面。
3. 五大核心面板(只用 Scalars 即可完成 99% 调试)
-
Scalars(最关键):所有训练指标随迭代轮次变化曲线,奖励、损失、episode 长度、学习率全在这里
-
Histograms:神经网络权重分布,排查梯度爆炸 / 消失
-
Graphs:可视化 PPO 网络结构(很少用)
-
Profiles:GPU/CPU 算力占用,判断
num_envs是否开太大 -
Text/Hparams:记录超参配置,多组实验对比
二、Scalars 面板全部参数含义(宇树训练标准指标)
分四大类:跟踪奖励(正向核心)、约束惩罚奖励(负向)、训练迭代指标、PPO 损失指标
(一)正向任务奖励(越高 = 机器人完成任务越好)
1. rew_tracking_lin_vel 线速度跟踪奖励【最重要指标】
-
含义:机器人基座 XY 平面实际速度 vs 下发指令前进 / 侧向速度匹配度,公式
exp(-速度误差),完美匹配时≈1,完全不匹配≈0 -
性能对应:
-
持续稳步上升:机器人学会跟随行走指令
-
长期卡在 0~0.2:只会原地踏步,不会前进
-
冲高后断崖下跌:步态震荡、打滑,速度频繁偏离指令
-
2. rew_tracking_ang_vel 角速度跟踪奖励
-
含义:偏航 Yaw 旋转速度跟踪,控制机器人左右转向
-
曲线解读:数值稳定偏高 = 转向流畅;数值极低 = 不会转弯、转向迟钝
3. rew_alive /episode_length 存活步数(Episode 平均长度)
-
含义:单次仿真环境从启动到摔倒 / 超时的总步数,环境最大步数一般 1000
-
性能:
-
稳定拉满接近 1000:几乎不摔倒,步态稳定
-
长期 200 以内:极易倾倒,平衡控制差
-
前期上涨后期暴跌:训练后期步态崩坏、频繁摔机
-
4. rew_feet_air_time 足端离地奖励(四足 / 人形通用)
-
含义:鼓励抬腿迈步,避免拖脚蹭地
-
偏低:机器人贴地滑行,无正常交替步态
(二)约束惩罚类奖励(永远负数,绝对值越小越好)
1. rew_lin_vel_z 垂直 Z 向速度惩罚
-
含义:抑制机身上下剧烈弹跳、起落冲击,惩罚竖直方向速度
-
曲线:负数绝对值持续变大 → 步态弹跳严重,机身上下抖动剧烈,真机落地冲击大
2. rew_hip_pos /rew_orientation 躯干姿态惩罚
-
hip_pos:约束髋部固定高度,避免蹲太低、过高
-
orientation:约束机身 Roll/Pitch 不倾斜、不侧翻
-
负值过大:机身歪斜、蹲伏,平衡差
3. rew_torques 关节力矩 / 能耗惩罚
-
含义:惩罚电机输出过大扭矩,降低功耗、保护硬件
-
绝对值持续增大:动作粗暴、关节发力过猛,真机容易过热过载
4. rew_dof_acc /rew_dof_pos_limits 关节平滑 / 限位惩罚
-
dof_acc:惩罚关节加速度突变,抑制抖动震颤
-
dof_pos_limits:惩罚关节超出物理限位,防止卡死
-
负值飙升:机器人关节高频震颤、频繁顶限位
5. rew_collision 机体碰撞惩罚
负值急剧变大:躯干、膝盖频繁碰撞地面,步态畸形
(三)全局训练统计指标
-
total_reward /mean_total_reward 总平均奖励
所有单项奖励加权总和,收敛核心判断依据:稳定持续上升、后期平缓震荡 = 训练收敛;长期不动 / 下跌 = 训练失效。 -
Iteration time 单轮迭代耗时
稳步上涨:num_envs并行环境开太多,GPU 满载卡顿;0.5~0.7s 为 4060 8G 合理区间。 -
total_timesteps 总仿真步数
用于判断训练数据量,步数越多策略越成熟。 -
Learning rate 学习率
PPO 默认衰减,曲线平滑下降;突然跳变会导致奖励剧烈震荡。
(四)PPO 神经网络损失指标(判断网络更新是否稳定)
-
policy_loss 策略损失
缓慢下降、小幅震荡正常;剧烈飙升 = 梯度爆炸,策略崩坏 -
value_loss 价值损失
平稳下降代表价值网络能准确预估未来奖励;持续走高 = 观测归一化异常、奖励波动太大 -
entropy 策略熵(探索度)
-
缓慢平滑下降:正常,前期探索随机步态,后期收敛稳定动作
-
快速跌到接近 0:过早失去探索,陷入局部最优,步态单一无法适应不同速度
-
全程居高不下:探索太强,始终学不会稳定行走
-
三、曲线变化对应训练问题 & 调参方案
场景 1:总奖励缓慢持续上升,后期小幅平稳震荡 → 【完美收敛】
表现:tracking_lin_vel 高、episode_length 拉满,各项惩罚绝对值小
操作:停止训练,保存 checkpoint,可导出真机部署
场景 2:总奖励长期卡在低位不上涨
原因:
-
tracking_lin_vel 权重太低,前进奖励引导不足;
-
entropy 熵衰减过快,探索不足;
-
惩罚项(torques/lin_vel_z)权重过大,机器人不敢迈步。
修复:增大 tracking_lin_vel 奖励 scale,调高 entropy_coef,降低垂直弹跳惩罚权重。
场景 3:奖励冲高后断崖暴跌(训练崩溃)
曲线特征:total_reward 先涨后骤降,value_loss 爆炸、episode_length 大幅缩短
诱因:
-
学习率过大,网络更新幅度失控;
-
域随机化参数拉满,环境难度突变;
-
并行环境 num_envs 开太多,显存 / 内存溢出导致观测异常。
修复:降低学习率、减小并行数量、开启观测裁剪。
场景 4:tracking_lin_vel 低,rew_lin_vel_z 负值极大(步态弹跳)
现象:能前进,但机身上下大幅度跳动,落地冲击大
修复:加大rew_lin_vel_z惩罚权重,提升髋部高度约束 rew_hip_pos 权重。
场景 5:episode_length 很短,频繁摔倒
曲线:存活步数长期 300 以内,orientation 姿态惩罚负值高
修复:调高躯干姿态、碰撞惩罚,降低高速指令采样概率,增加平衡相关奖励。
场景 6:熵 entropy 快速趋近 0,奖励停滞
现象:机器人只会一种慢速步态,变速 / 转向立刻失衡
修复:减缓熵衰减系数,提升 entropy_coef,保留探索空间。
场景 7:torques 力矩惩罚持续恶化(动作粗暴)
曲线 rew_torques 负向数值越来越大
修复:加大力矩惩罚 scale,增加关节加速度平滑惩罚 dof_acc。
四、实操使用流程(日常训练标准步骤)
- 后台启动训练脚本(无头模式)
python legged_gym/scripts/train.py --task=g1 --headless
- 新开终端启动 tensorboard
tensorboard --logdir=logs/
-
浏览器打开 6006 端口,切换 Scalars 面板,重点监控 3 条核心曲线:
① mean_total_reward(总奖励)
② rew_tracking_lin_vel(速度跟踪)
③ mean episode length(存活步数) -
每 1000 迭代观察一次曲线:
-
三项同步稳步上涨:继续训练
-
任意一项持续恶化:暂停训练,调整奖励权重 / PPO 超参
-
-
收敛后,停止训练,加载最优 checkpoint 可视化测试:
python play.py --task=g1 --checkpoint=-1
五、补充适配你 4060 8G 无头训练小提示
-
训练和 TensorBoard 可同时运行,仅占用少量 CPU,不占用 GPU 显存;
-
多组对比实验:不同 num_envs、奖励权重会生成独立日志文件夹,在 TensorBoard 左上角勾选多条曲线叠加对比;
-
日志占用磁盘空间大,长期挂机训练可定期删除旧 logs 文件夹。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)