LeRobot-SO100入门教程-训练数据
说明:
- 介绍如何利用LeRobot训练数据
- 在训练PC完成
相关设备
- LeRobot-SO100套件:采购地址
步骤:
- 加载lerobot环境
conda activate lerobot
- 进入lerobot目录
cd ~/lerobot
- 在进行训练数据之前,请确保删除之前输出训练后的文件夹
rm -r ~/lerobot/outputs/train/act_so100_test
- 增加key,将下面的key修改为自己的key
huggingface-cli login --token key --add-to-git-credential
- 增加环境路径,显示自己的用户名
HF_USER=$(huggingface-cli whoami | head -n 1)
echo $HF_USER
- 训练数据
python3 ~/lerobot/lerobot/scripts/train.py \
--dataset.repo_id=${HF_USER}/so100_test \
--policy.type=act \
--output_dir=outputs/train/act_so100_test \
--job_name=act_so100_test \
--policy.device=cuda \
--wandb.enable=false
- 以上程序的参数含义:
--dataset.repo_id=${HF_USER}/so100_test : 指定使用 HF_USER 这个用户下名为 so100_test 的数据集
--policy.type=act \
--output_dir=outputs/train/act_so100_test : 表示将结果保存到 outputs/train 目录下的 act_so100_test 子目录中
--job_name=act_so100_test : 用于为当前的训练任务指定一个名称
--policy.device=cuda : 表明使用 NVIDIA 的 CUDA 技术,借助 GPU 来加速计算,提高训练效率
--wandb.enable=false: 不启用 W&B 服务,即不会将训练过程中的数据和指标上传到 W&B 平台进行可视化和分析
- 训练过程内容如下
INFO 2025-04-29 14:57:39 ts/train.py:117 Logs will be saved locally.
INFO 2025-04-29 14:57:39 ts/train.py:127 Creating dataset
episodes.jsonl: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 184/184 [00:00<00:00, 541kB/s]
episodes_stats.jsonl: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 4.08k/4.08k [00:00<00:00, 5.29MB/s]
info.json: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 3.23k/3.23k [00:00<00:00, 9.53MB/s]
tasks.jsonl: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 71.0/71.0 [00:00<00:00, 112kB/s]
Fetching 4 files: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 4/4 [00:01<00:00, 2.66it/s]
.gitattributes: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2.46k/2.46k [00:00<00:00, 7.22MB/s]
README.md: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 3.73k/3.73k [00:00<00:00, 11.1MB/s]
episode_000001.parquet: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 23.7k/23.7k [00:00<00:00, 2.11MB/s]
episode_000000.parquet: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 23.7k/23.7k [00:00<00:00, 90.1kB/s]
episode_000001.mp4: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 6.83M/6.83M [00:01<00:00, 5.88MB/s]
episode_000000.mp4: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 11.9M/11.9M [00:09<00:00, 1.24MB/s]
episode_000000.mp4: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 7.15M/7.15M [00:09<00:00, 754kB/s]
episode_000001.mp4: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 11.7M/11.7M [00:13<00:00, 834kB/s]
Fetching 12 files: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 12/12 [00:15<00:00, 1.31s/it]
Generating train split: 1224 examples [00:00, 147265.66 examples/s]████████████████████████████████████████████████████████████████████████████████████████████████████| 7.15M/7.15M [00:09<00:00, 755kB/s]
INFO 2025-04-29 14:58:00 ts/train.py:138 Creating policy
INFO 2025-04-29 14:58:01 ts/train.py:144 Creating optimizer and scheduler
INFO 2025-04-29 14:58:01 ts/train.py:156 Output dir: outputs/train/act_so100_test
INFO 2025-04-29 14:58:01 ts/train.py:159 cfg.steps=100000 (100K)
INFO 2025-04-29 14:58:01 ts/train.py:160 dataset.num_frames=1224 (1K)
INFO 2025-04-29 14:58:01 ts/train.py:161 dataset.num_episodes=2
INFO 2025-04-29 14:58:01 ts/train.py:162 num_learnable_params=51597190 (52M)
INFO 2025-04-29 14:58:01 ts/train.py:163 num_total_params=51597238 (52M)
INFO 2025-04-29 14:58:01 ts/train.py:202 Start offline training on a fixed dataset
INFO 2025-04-29 14:59:29 ts/train.py:232 step:200 smpl:800 ep:1 epch:0.65 loss:7.388 grdn:215.673 lr:1.0e-05 updt_s:0.436 data_s:0.002
INFO 2025-04-29 15:00:56 ts/train.py:232 step:400 smpl:2K ep:3 epch:1.31 loss:3.243 grdn:123.599 lr:1.0e-05 updt_s:0.433 data_s:0.002
INFO 2025-04-29 15:02:23 ts/train.py:232 step:600 smpl:2K ep:4 epch:1.96 loss:2.743 grdn:107.479 lr:1.0e-05 updt_s:0.433 data_s:0.000
INFO 2025-04-29 14:57:39 ts/train.py:117 Logs will be saved locally.
INFO 2025-04-29 14:57:39 ts/train.py:127 Creating dataset
episodes.jsonl: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 184/184 [00:00<00:00, 541kB/s]
episodes_stats.jsonl: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 4.08k/4.08k [00:00<00:00, 5.29MB/s]
info.json: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 3.23k/3.23k [00:00<00:00, 9.53MB/s]
tasks.jsonl: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 71.0/71.0 [00:00<00:00, 112kB/s]
Fetching 4 files: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 4/4 [00:01<00:00, 2.66it/s]
.gitattributes: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2.46k/2.46k [00:00<00:00, 7.22MB/s]
README.md: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 3.73k/3.73k [00:00<00:00, 11.1MB/s]
episode_000001.parquet: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 23.7k/23.7k [00:00<00:00, 2.INFO 2025-04-29 15:03:50 ts/train.py:232 step:800 smpl:3K ep:5 epch:2.61 loss:2.478 grdn:99.506 lr:1.0e-05 updt_s:0.433 data_s:0.002
INFO 2025-04-29 15:05:17 ts/train.py:232 step:1K smpl:4K ep:7 epch:3.27 loss:2.207 grdn:92.089 lr:1.0e-05 updt_s:0.431 data_s:0.002
INFO 2025-04-29 15:06:43 ts/train.py:232 step:1K smpl:5K ep:8 epch:3.92 loss:2.046 grdn:89.195 lr:1.0e-05 updt_s:0.432 data_s:0.000
INFO 2025-04-29 15:08:10 ts/train.py:232 step:1K smpl:6K ep:9 epch:4.58 loss:1.899 grdn:86.236 lr:1.0e-05 updt_s:0.432 data_s:0.002
INFO 2025-04-29 15:09:37 ts/train.py:232 step:2K smpl:6K ep:10 epch:5.23 loss:1.767 grdn:81.910 lr:1.0e-05 updt_s:0.431 data_s:0.002
INFO 2025-04-29 15:11:03 ts/train.py:232 step:2K smpl:7K ep:12 epch:5.88 loss:1.603 grdn:77.280 lr:1.0e-05 updt_s:0.432 data_s:0.000
INFO 2025-04-29 15:12:30 ts/train.py:232 step:2K smpl:8K ep:13 epch:6.54 loss:1.509 grdn:75.766 lr:1.0e-05 updt_s:0.431 data_s:0.002
- 训练后的结果目录
~/lerobot/outputs/train/act_so100_test/checkpoints/last/pretrained_model
- 训练出来的模型
config.json model.safetensors train_config.json
演示视频
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号