Skip to content

Commit 3c0a209

Browse files
alibertsCadenetc-huang
authored
Simplify configs (#550)
Co-authored-by: Remi <[email protected]> Co-authored-by: HUANG TZU-CHUN <[email protected]>
1 parent 1ee1acf commit 3c0a209

File tree

119 files changed

+5763
-5468
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

119 files changed

+5763
-5468
lines changed

.github/workflows/test.yml

Lines changed: 35 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -101,39 +101,38 @@ jobs:
101101
-W ignore::UserWarning:gymnasium.utils.env_checker:247 \
102102
&& rm -rf tests/outputs outputs
103103
104-
# TODO(aliberts, rcadene): redesign after v2 migration / removing hydra
105-
# end-to-end:
106-
# name: End-to-end
107-
# runs-on: ubuntu-latest
108-
# env:
109-
# MUJOCO_GL: egl
110-
# steps:
111-
# - uses: actions/checkout@v4
112-
# with:
113-
# lfs: true # Ensure LFS files are pulled
114-
115-
# - name: Install apt dependencies
116-
# # portaudio19-dev is needed to install pyaudio
117-
# run: |
118-
# sudo apt-get update && \
119-
# sudo apt-get install -y libegl1-mesa-dev portaudio19-dev
120-
121-
# - name: Install poetry
122-
# run: |
123-
# pipx install poetry && poetry config virtualenvs.in-project true
124-
# echo "${{ github.workspace }}/.venv/bin" >> $GITHUB_PATH
125-
126-
# - name: Set up Python 3.10
127-
# uses: actions/setup-python@v5
128-
# with:
129-
# python-version: "3.10"
130-
# cache: "poetry"
131-
132-
# - name: Install poetry dependencies
133-
# run: |
134-
# poetry install --all-extras
135-
136-
# - name: Test end-to-end
137-
# run: |
138-
# make test-end-to-end \
139-
# && rm -rf outputs
104+
end-to-end:
105+
name: End-to-end
106+
runs-on: ubuntu-latest
107+
env:
108+
MUJOCO_GL: egl
109+
steps:
110+
- uses: actions/checkout@v4
111+
with:
112+
lfs: true # Ensure LFS files are pulled
113+
114+
- name: Install apt dependencies
115+
# portaudio19-dev is needed to install pyaudio
116+
run: |
117+
sudo apt-get update && \
118+
sudo apt-get install -y libegl1-mesa-dev portaudio19-dev
119+
120+
- name: Install poetry
121+
run: |
122+
pipx install poetry && poetry config virtualenvs.in-project true
123+
echo "${{ github.workspace }}/.venv/bin" >> $GITHUB_PATH
124+
125+
- name: Set up Python 3.10
126+
uses: actions/setup-python@v5
127+
with:
128+
python-version: "3.10"
129+
cache: "poetry"
130+
131+
- name: Install poetry dependencies
132+
run: |
133+
poetry install --all-extras
134+
135+
- name: Test end-to-end
136+
run: |
137+
make test-end-to-end \
138+
&& rm -rf outputs

Makefile

Lines changed: 108 additions & 143 deletions
Original file line numberDiff line numberDiff line change
@@ -20,171 +20,136 @@ build-gpu:
2020

2121
test-end-to-end:
2222
${MAKE} DEVICE=$(DEVICE) test-act-ete-train
23+
${MAKE} DEVICE=$(DEVICE) test-act-ete-train-resume
2324
${MAKE} DEVICE=$(DEVICE) test-act-ete-eval
24-
${MAKE} DEVICE=$(DEVICE) test-act-ete-train-amp
25-
${MAKE} DEVICE=$(DEVICE) test-act-ete-eval-amp
2625
${MAKE} DEVICE=$(DEVICE) test-diffusion-ete-train
2726
${MAKE} DEVICE=$(DEVICE) test-diffusion-ete-eval
2827
${MAKE} DEVICE=$(DEVICE) test-tdmpc-ete-train
29-
${MAKE} DEVICE=$(DEVICE) test-tdmpc-ete-train-with-online
3028
${MAKE} DEVICE=$(DEVICE) test-tdmpc-ete-eval
31-
${MAKE} DEVICE=$(DEVICE) test-default-ete-eval
32-
${MAKE} DEVICE=$(DEVICE) test-act-pusht-tutorial
29+
${MAKE} DEVICE=$(DEVICE) test-tdmpc-ete-train-with-online
3330

3431
test-act-ete-train:
3532
python lerobot/scripts/train.py \
36-
policy=act \
37-
policy.dim_model=64 \
38-
env=aloha \
39-
wandb.enable=False \
40-
training.offline_steps=2 \
41-
training.online_steps=0 \
42-
eval.n_episodes=1 \
43-
eval.batch_size=1 \
44-
device=$(DEVICE) \
45-
training.save_checkpoint=true \
46-
training.save_freq=2 \
47-
policy.n_action_steps=20 \
48-
policy.chunk_size=20 \
49-
training.batch_size=2 \
50-
training.image_transforms.enable=true \
51-
hydra.run.dir=tests/outputs/act/
52-
53-
test-act-ete-eval:
54-
python lerobot/scripts/eval.py \
55-
-p tests/outputs/act/checkpoints/000002/pretrained_model \
56-
eval.n_episodes=1 \
57-
eval.batch_size=1 \
58-
env.episode_length=8 \
59-
device=$(DEVICE) \
60-
61-
test-act-ete-train-amp:
33+
--policy.type=act \
34+
--policy.dim_model=64 \
35+
--policy.n_action_steps=20 \
36+
--policy.chunk_size=20 \
37+
--env.type=aloha \
38+
--env.episode_length=5 \
39+
--dataset.repo_id=lerobot/aloha_sim_transfer_cube_human \
40+
--dataset.image_transforms.enable=true \
41+
--dataset.episodes="[0]" \
42+
--batch_size=2 \
43+
--offline.steps=4 \
44+
--online.steps=0 \
45+
--eval.n_episodes=1 \
46+
--eval.batch_size=1 \
47+
--save_freq=2 \
48+
--save_checkpoint=true \
49+
--log_freq=1 \
50+
--wandb.enable=false \
51+
--device=$(DEVICE) \
52+
--output_dir=tests/outputs/act/
53+
54+
test-act-ete-train-resume:
6255
python lerobot/scripts/train.py \
63-
policy=act \
64-
policy.dim_model=64 \
65-
env=aloha \
66-
wandb.enable=False \
67-
training.offline_steps=2 \
68-
training.online_steps=0 \
69-
eval.n_episodes=1 \
70-
eval.batch_size=1 \
71-
device=$(DEVICE) \
72-
training.save_checkpoint=true \
73-
training.save_freq=2 \
74-
policy.n_action_steps=20 \
75-
policy.chunk_size=20 \
76-
training.batch_size=2 \
77-
hydra.run.dir=tests/outputs/act_amp/ \
78-
training.image_transforms.enable=true \
79-
use_amp=true
56+
--config_path=tests/outputs/act/checkpoints/000002/pretrained_model/train_config.json \
57+
--resume=true
8058

81-
test-act-ete-eval-amp:
59+
test-act-ete-eval:
8260
python lerobot/scripts/eval.py \
83-
-p tests/outputs/act_amp/checkpoints/000002/pretrained_model \
84-
eval.n_episodes=1 \
85-
eval.batch_size=1 \
86-
env.episode_length=8 \
87-
device=$(DEVICE) \
88-
use_amp=true
61+
--policy.path=tests/outputs/act/checkpoints/000004/pretrained_model \
62+
--env.type=aloha \
63+
--env.episode_length=5 \
64+
--eval.n_episodes=1 \
65+
--eval.batch_size=1 \
66+
--device=$(DEVICE)
8967

9068
test-diffusion-ete-train:
9169
python lerobot/scripts/train.py \
92-
policy=diffusion \
93-
policy.down_dims=\[64,128,256\] \
94-
policy.diffusion_step_embed_dim=32 \
95-
policy.num_inference_steps=10 \
96-
env=pusht \
97-
wandb.enable=False \
98-
training.offline_steps=2 \
99-
training.online_steps=0 \
100-
eval.n_episodes=1 \
101-
eval.batch_size=1 \
102-
device=$(DEVICE) \
103-
training.save_checkpoint=true \
104-
training.save_freq=2 \
105-
training.batch_size=2 \
106-
training.image_transforms.enable=true \
107-
hydra.run.dir=tests/outputs/diffusion/
70+
--policy.type=diffusion \
71+
--policy.down_dims='[64,128,256]' \
72+
--policy.diffusion_step_embed_dim=32 \
73+
--policy.num_inference_steps=10 \
74+
--env.type=pusht \
75+
--env.episode_length=5 \
76+
--dataset.repo_id=lerobot/pusht \
77+
--dataset.image_transforms.enable=true \
78+
--dataset.episodes="[0]" \
79+
--batch_size=2 \
80+
--offline.steps=2 \
81+
--online.steps=0 \
82+
--eval.n_episodes=1 \
83+
--eval.batch_size=1 \
84+
--save_checkpoint=true \
85+
--save_freq=2 \
86+
--log_freq=1 \
87+
--wandb.enable=false \
88+
--device=$(DEVICE) \
89+
--output_dir=tests/outputs/diffusion/
10890

10991
test-diffusion-ete-eval:
11092
python lerobot/scripts/eval.py \
111-
-p tests/outputs/diffusion/checkpoints/000002/pretrained_model \
112-
eval.n_episodes=1 \
113-
eval.batch_size=1 \
114-
env.episode_length=8 \
115-
device=$(DEVICE) \
93+
--policy.path=tests/outputs/diffusion/checkpoints/000002/pretrained_model \
94+
--env.type=pusht \
95+
--env.episode_length=5 \
96+
--eval.n_episodes=1 \
97+
--eval.batch_size=1 \
98+
--device=$(DEVICE)
11699

117100
test-tdmpc-ete-train:
118101
python lerobot/scripts/train.py \
119-
policy=tdmpc \
120-
env=xarm \
121-
env.task=XarmLift-v0 \
122-
dataset_repo_id=lerobot/xarm_lift_medium \
123-
wandb.enable=False \
124-
training.offline_steps=2 \
125-
training.online_steps=0 \
126-
eval.n_episodes=1 \
127-
eval.batch_size=1 \
128-
env.episode_length=2 \
129-
device=$(DEVICE) \
130-
training.save_checkpoint=true \
131-
training.save_freq=2 \
132-
training.batch_size=2 \
133-
training.image_transforms.enable=true \
134-
hydra.run.dir=tests/outputs/tdmpc/
135-
136-
test-tdmpc-ete-train-with-online:
137-
python lerobot/scripts/train.py \
138-
env=pusht \
139-
env.gym.obs_type=environment_state_agent_pos \
140-
policy=tdmpc_pusht_keypoints \
141-
eval.n_episodes=1 \
142-
eval.batch_size=1 \
143-
env.episode_length=10 \
144-
device=$(DEVICE) \
145-
training.offline_steps=2 \
146-
training.online_steps=20 \
147-
training.save_checkpoint=false \
148-
training.save_freq=10 \
149-
training.batch_size=2 \
150-
training.online_rollout_n_episodes=2 \
151-
training.online_rollout_batch_size=2 \
152-
training.online_steps_between_rollouts=10 \
153-
training.online_buffer_capacity=15 \
154-
eval.use_async_envs=true \
155-
hydra.run.dir=tests/outputs/tdmpc_online/
156-
102+
--policy.type=tdmpc \
103+
--env.type=xarm \
104+
--env.task=XarmLift-v0 \
105+
--env.episode_length=5 \
106+
--dataset.repo_id=lerobot/xarm_lift_medium \
107+
--dataset.image_transforms.enable=true \
108+
--dataset.episodes="[0]" \
109+
--batch_size=2 \
110+
--offline.steps=2 \
111+
--online.steps=0 \
112+
--eval.n_episodes=1 \
113+
--eval.batch_size=1 \
114+
--save_checkpoint=true \
115+
--save_freq=2 \
116+
--log_freq=1 \
117+
--wandb.enable=false \
118+
--device=$(DEVICE) \
119+
--output_dir=tests/outputs/tdmpc/
157120

158121
test-tdmpc-ete-eval:
159122
python lerobot/scripts/eval.py \
160-
-p tests/outputs/tdmpc/checkpoints/000002/pretrained_model \
161-
eval.n_episodes=1 \
162-
eval.batch_size=1 \
163-
env.episode_length=8 \
164-
device=$(DEVICE) \
123+
--policy.path=tests/outputs/tdmpc/checkpoints/000002/pretrained_model \
124+
--env.type=xarm \
125+
--env.episode_length=5 \
126+
--env.task=XarmLift-v0 \
127+
--eval.n_episodes=1 \
128+
--eval.batch_size=1 \
129+
--device=$(DEVICE)
165130

166-
test-default-ete-eval:
167-
python lerobot/scripts/eval.py \
168-
--config lerobot/configs/default.yaml \
169-
eval.n_episodes=1 \
170-
eval.batch_size=1 \
171-
env.episode_length=8 \
172-
device=$(DEVICE) \
173-
174-
test-act-pusht-tutorial:
175-
cp examples/advanced/1_train_act_pusht/act_pusht.yaml lerobot/configs/policy/created_by_Makefile.yaml
131+
test-tdmpc-ete-train-with-online:
176132
python lerobot/scripts/train.py \
177-
policy=created_by_Makefile.yaml \
178-
env=pusht \
179-
wandb.enable=False \
180-
training.offline_steps=2 \
181-
eval.n_episodes=1 \
182-
eval.batch_size=1 \
183-
env.episode_length=2 \
184-
device=$(DEVICE) \
185-
training.save_model=true \
186-
training.save_freq=2 \
187-
training.batch_size=2 \
188-
training.image_transforms.enable=true \
189-
hydra.run.dir=tests/outputs/act_pusht/
190-
rm lerobot/configs/policy/created_by_Makefile.yaml
133+
--policy.type=tdmpc \
134+
--env.type=pusht \
135+
--env.obs_type=environment_state_agent_pos \
136+
--env.episode_length=5 \
137+
--dataset.repo_id=lerobot/pusht_keypoints \
138+
--dataset.image_transforms.enable=true \
139+
--dataset.episodes="[0]" \
140+
--batch_size=2 \
141+
--offline.steps=2 \
142+
--online.steps=20 \
143+
--online.rollout_n_episodes=2 \
144+
--online.rollout_batch_size=2 \
145+
--online.steps_between_rollouts=10 \
146+
--online.buffer_capacity=1000 \
147+
--online.env_seed=10000 \
148+
--save_checkpoint=false \
149+
--save_freq=10 \
150+
--log_freq=1 \
151+
--eval.use_async_envs=true \
152+
--eval.n_episodes=1 \
153+
--eval.batch_size=1 \
154+
--device=$(DEVICE) \
155+
--output_dir=tests/outputs/tdmpc_online/

0 commit comments

Comments
 (0)