🧪 新教程持续更新中 · 从机械臂到传感器,跟着教程从零搭建
跳到主要内容

阶段五:模型训练(Linux) ​

本阶段使用采集的数据集训练策略(ACT 等),产出可部署的模型。Linux 是 GPU 训练的最佳环境——CUDA torch 依赖自动解析,无需手动配置。


前置条件 ​

  • 已完成 阶段四:数据采集

  • NVIDIA GPU(推荐)、CUDA 驱动(nvidia-smi 可查)

  • 数据集已录制(本地缓存可见)


步骤 1:确认 GPU 环境 ​

Bash
# 确认 CUDA 驱动
nvidia-smi

# 确认 torch 可用 CUDA
python -c "import torch; print('CUDA:', torch.cuda.is_available(), '| GPU:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'N/A')"

期望输出:CUDA: True | GPU: <你的显卡名>

⚠️ 注意(CUDA torch):若 CUDA: False,说明装的是 CPU 版 torch。重装 CUDA 版:

Bash
# 官方源(海外网络)
pip install torch --index-url https://download.pytorch.org/whl/cu128

# 中国大陆网络优先用阿里云镜像
pip install torch --index-url https://mirrors.aliyun.com/pytorch-wheels/cu128

或用 CPU 训练(--policy.device=cpu,但速度慢很多)。

💡 提示:pip install -e ".[amazinghand]" 在 Linux 上通常已解析 GPU 版 torch(若检测到 CUDA 环境)。若否,按上述命令重装。


步骤 2:训练 ​

Bash
lerobot-train \
  --dataset.repo_id=soarm_amazing_hand_pick \
  --dataset.root=~/lerobot_data \
  --policy.type=act \
  --output_dir=outputs/train/soarm_amazing_hand_pick \
  --job_name=soarm_amazing_hand_pick \
  --policy.device=cuda \
  --wandb.enable=false \
  --policy.push_to_hub=false \
  --steps=60000

💡 说明:--dataset.repo_id 和 --dataset.root 必须与阶段四录制时完全一致(repo_id=soarm_amazing_hand_pick、root=~/lerobot_data),即可读取本地数据集,无需 HF 登录。


参数说明 ​

参数说明
--dataset.repo_id数据集名称(与录制时一致)
--dataset.root数据集本地路径(与录制时一致)
--policy.type策略类型,act 为常用选择
--output_dir训练输出目录(checkpoints、日志)
--job_name任务名(用于日志区分)
--policy.devicecuda(GPU)或 cpu
--wandb.enable权重日志,false 关闭(无需 wandb 账号)
--policy.push_to_hub是否推送模型到 HF,false 仅本地
--steps训练步数

训练过程说明 ​

  • checkpoints:每步自动保存到 outputs/train/soarm_amazing_hand_pick/checkpoints/

  • 日志:终端实时显示 loss 等指标

  • 时长:60000 步在消费级 GPU 上通常数小时(具体取决显卡)

⚠️ 注意 1(步数调整):--steps=60000 为 ACT 典型值。任务简单可减至 30000,复杂任务可加至 100000+。观察 loss 收敛情况。

⚠️ 注意 2(训练中断续跑):中断后重新运行同参数命令会从最后 checkpoint 继续。

⚠️ 注意 3(wandb):如需可视化 loss 曲线,可开 --wandb.enable=true(需 wandb login)。默认关闭。

⚠️ 注意 4(无头服务器):若在 SSH/无显示器服务器训练,确保不要依赖 GUI(训练本身无需显示)。若使用 --display_data 相关参数则需显示服务器。

⚠️ 注意 5(后台训练):长训练建议用 nohup ... & 或 tmux 保持进程,避免 SSH 断开中断:

Bash
tmux new -s train
lerobot-train --dataset.repo_id=...
# Ctrl+B 然后 D 脱离;tmux attach -t train 重新进入

完成本阶段后,进入 阶段六:部署与评估。


故障排查 ​

现象原因解决
CUDA: FalseCPU 版 torch重装 CUDA 版 torch
显存不足(OOM)批大小过大--policy.batch_size=8 或更低
数据集找不到repo_id/root 不一致确认与录制时 --dataset.repo_id 和 --dataset.root 完全一致
训练中途 SSH 断进程被杀用 tmux/nohup 后台训练
wandb 报错未登录--wandb.enable=false 或 wandb login