Robotics
LeRobot
Safetensors
imitation-learning
act
b-spline
so101
bspline_act
Dimios45 commited on
Commit
64bc958
·
verified ·
1 Parent(s): eb00ba9

Upload folder using huggingface_hub

Browse files
Files changed (31) hide show
  1. README.md +255 -0
  2. checkpoints/010000/pretrained_model/config.json +83 -0
  3. checkpoints/010000/pretrained_model/model.safetensors +3 -0
  4. checkpoints/010000/pretrained_model/policy_postprocessor.json +12 -0
  5. checkpoints/010000/pretrained_model/policy_preprocessor.json +64 -0
  6. checkpoints/010000/pretrained_model/policy_preprocessor_step_3_normalizer_processor.safetensors +3 -0
  7. checkpoints/010000/pretrained_model/train_config.json +230 -0
  8. checkpoints/020000/pretrained_model/config.json +83 -0
  9. checkpoints/020000/pretrained_model/model.safetensors +3 -0
  10. checkpoints/020000/pretrained_model/policy_postprocessor.json +12 -0
  11. checkpoints/020000/pretrained_model/policy_preprocessor.json +64 -0
  12. checkpoints/020000/pretrained_model/policy_preprocessor_step_3_normalizer_processor.safetensors +3 -0
  13. checkpoints/020000/pretrained_model/train_config.json +230 -0
  14. checkpoints/030000/pretrained_model/config.json +83 -0
  15. checkpoints/030000/pretrained_model/model.safetensors +3 -0
  16. checkpoints/030000/pretrained_model/policy_postprocessor.json +12 -0
  17. checkpoints/030000/pretrained_model/policy_preprocessor.json +64 -0
  18. checkpoints/030000/pretrained_model/policy_preprocessor_step_3_normalizer_processor.safetensors +3 -0
  19. checkpoints/030000/pretrained_model/train_config.json +230 -0
  20. checkpoints/040000/pretrained_model/config.json +83 -0
  21. checkpoints/040000/pretrained_model/model.safetensors +3 -0
  22. checkpoints/040000/pretrained_model/policy_postprocessor.json +12 -0
  23. checkpoints/040000/pretrained_model/policy_preprocessor.json +64 -0
  24. checkpoints/040000/pretrained_model/policy_preprocessor_step_3_normalizer_processor.safetensors +3 -0
  25. checkpoints/040000/pretrained_model/train_config.json +230 -0
  26. config.json +83 -0
  27. model.safetensors +3 -0
  28. policy_postprocessor.json +12 -0
  29. policy_preprocessor.json +64 -0
  30. policy_preprocessor_step_3_normalizer_processor.safetensors +3 -0
  31. train_config.json +230 -0
README.md ADDED
@@ -0,0 +1,255 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ library_name: lerobot
4
+ pipeline_tag: robotics
5
+ tags:
6
+ - robotics
7
+ - lerobot
8
+ - imitation-learning
9
+ - act
10
+ - b-spline
11
+ - so101
12
+ - bspline_act
13
+ datasets:
14
+ - atharva-pantheon/pick_block_bowl
15
+ model_name: pickblock_bspline_act
16
+ ---
17
+
18
+ # pickblock_bspline_act
19
+
20
+ An [ACT](https://huggingface.co/papers/2304.13705) policy that predicts **B-spline
21
+ trajectory segments** instead of discrete action chunks, trained on SO-101 black-cube
22
+ picking. This is the "Reg.+BSP" variant from
23
+ [B-spline Policy: Accelerating Manipulation Policies via B-spline Action Representations](https://arxiv.org/abs/2607.09648).
24
+
25
+ The policy outputs a curve, so executing `a(n·t)` replays the same trajectory geometry
26
+ n times faster without retraining. Speed-up is an inference flag, verified exact to
27
+ 0.000e+00 deviation at 2× and 4×.
28
+
29
+ > [!WARNING]
30
+ > **This model is trained on 13 episodes and does not generalize well.** Held-out error
31
+ > is 22.8° against 6.2° on training data — a 3.7× gap that never closed across 40,000
32
+ > steps. It has never been run on hardware. Treat it as a pipeline validation artifact,
33
+ > not a working policy. See [Evaluation](#evaluation) and [Limitations](#limitations).
34
+
35
+ ## Download
36
+
37
+ ```bash
38
+ hf download Dimios45/pickblock_bspline_act --local-dir ./pickblock_bspline_act
39
+ ```
40
+
41
+ The repository root holds the recommended checkpoint, so `--policy.path` also accepts
42
+ the repo id directly. Individual checkpoints live under `checkpoints/<step>/`.
43
+
44
+ ## Run it
45
+
46
+ ```bash
47
+ lerobot-rollout \
48
+ --strategy.type=base \
49
+ --policy.path=./pickblock_bspline_act/checkpoints/010000/pretrained_model \
50
+ --policy.speed_up=1.0 \
51
+ --device=cuda \
52
+ --robot.type=so101_follower \
53
+ --robot.port=/dev/ttyACM0 --robot.id=FOLLOWER \
54
+ --robot.cameras='{front: {type: opencv, index_or_path: 0, width: 640, height: 360, fps: 30}, ee: {type: opencv, index_or_path: 4, width: 640, height: 360, fps: 30}}' \
55
+ --task="Grab the black cube" \
56
+ --fps=30 --duration=60
57
+ ```
58
+
59
+ `--policy.path` takes either a Hub repo id (`namespace/name`) or a **local directory
60
+ containing `config.json`** — which is the `pretrained_model/` subdirectory, not the
61
+ step directory above it. There is no `--policy.subfolder` flag.
62
+
63
+ ### Two things differ from the cup-stacking model — check both
64
+
65
+ **Resolution is 640×360, not 640×480.** The source demonstrations were recorded at
66
+ 1920×1080; they were downscaled to 640×360 for training, preserving the 16:9 aspect
67
+ ratio. Your cameras must be configured to match.
68
+
69
+ **The cameras are `front` and `ee`**, not `front` and `gripper`:
70
+
71
+ | Key | Shape |
72
+ |---|---|
73
+ | `observation.images.front` | `(3, 360, 640)` |
74
+ | `observation.images.ee` | `(3, 360, 640)` |
75
+ | `observation.state` | `(6,)` |
76
+
77
+ Joint order is `shoulder_pan, shoulder_lift, elbow_flex, wrist_flex, wrist_roll, gripper`,
78
+ in degrees. Swapping the two cameras produces confident but wrong behaviour rather than
79
+ an error.
80
+
81
+ To try the speed-up, raise `--policy.speed_up` to 2.0 or 4.0. The paper reaches 4× on
82
+ cube picking specifically, so this task should tolerate it better than precise-placement
83
+ tasks — but validate at 1× first, and note this policy has not been shown to complete
84
+ the task at any speed.
85
+
86
+ ### Requirements
87
+
88
+ This policy type is not in upstream LeRobot. You need a checkout containing the
89
+ `bspline_act` policy, installed with the scipy extra:
90
+
91
+ ```bash
92
+ uv pip install -e ".[feetech,bspline]"
93
+ ```
94
+
95
+ `scipy>=1.15` is required for `interpolate.generate_knots`.
96
+
97
+ Unnormalization statistics are stored as buffers inside `model.safetensors`, so each
98
+ checkpoint is self-contained — you do not need the training dataset on the robot machine.
99
+
100
+ ## Checkpoints
101
+
102
+ | Step | Epoch | Train error | **Held-out error** | Eval loss | |
103
+ |---|---|---|---|---|---|
104
+ | **10000** | 58 | 6.19° | **22.81°** | **0.3903** | **recommended — best** |
105
+ | 20000 | 116 | 4.67° | 24.15° | 0.3986 | |
106
+ | 30000 | 174 | 3.90° | 24.77° | 0.3996 | |
107
+ | 40000 | 234 | 3.44° | 26.22° | 0.4030 | final, worst held-out |
108
+
109
+ Held-out error gets **monotonically worse** after step 10,000 while training error keeps
110
+ falling. Use 10000. Later checkpoints are included only for reproducibility — they are
111
+ strictly worse policies.
112
+
113
+ Error is mean absolute joint error in degrees, worst joint, over each predicted
114
+ segment's horizon (~0.76 s), measured by decoding the spline and comparing against
115
+ ground-truth actions.
116
+
117
+ ## Training
118
+
119
+ | | |
120
+ |---|---|
121
+ | Steps | 40,000 |
122
+ | Batch size | 32 |
123
+ | Epochs | 234 |
124
+ | Dataset | [`atharva-pantheon/pick_block_bowl`](https://huggingface.co/datasets/atharva-pantheon/pick_block_bowl) → downscaled → idle-trimmed → B-spline converted |
125
+ | Episodes | **13 train / 3 held out** |
126
+ | Frames | 6,422 (from 10,342; 37.9% boundary idle removed) |
127
+ | Optimizer | AdamW, lr 2e-5 (backbone 1e-5), wd 1e-3 |
128
+ | Precision | bf16 autocast + `channels_last` |
129
+ | Augmentation | ColorJitter (brightness/contrast/saturation/hue/sharpness), up to 3 per frame |
130
+ | Hardware | 1× RTX 4090, ~2 h 45 min total |
131
+ | Seed | 1000 |
132
+
133
+ Augmentation and 10× weight decay were added specifically to combat overfitting. They
134
+ slowed the fit to training data and **moved held-out loss by 0.0003**. An unaugmented
135
+ control run is available on request; the two are indistinguishable on unseen data.
136
+
137
+ ### Preprocessing
138
+
139
+ Source video is 1920×1080 AV1, which is unusable for ACT directly — a ResNet18
140
+ stride-32 feature map is 34×60, putting over 4,000 tokens into the transformer encoder
141
+ across two cameras. Transcoded to 640×360 H.264, which also sped up random-access
142
+ decode from 40 to 183 frames/s per worker.
143
+
144
+ Leading and trailing motionless frames were then removed: 46 s of lead-in and 27 s of
145
+ trailing idle. This dataset is unusually idle-heavy — 37.9% of frames — including
146
+ 20 s and 32 s dead stretches at the ends of two episodes where recording continued
147
+ after the task finished.
148
+
149
+ Motion is measured as peak-to-peak joint range over a ±0.5 s window rather than
150
+ frame-to-frame delta, because isolated jitter samples inside a dead stretch defeat a
151
+ delta test and silently leave the idle in.
152
+
153
+ ## Architecture
154
+
155
+ Standard ACT with one change: the decoder emits a B-spline **parameter matrix** rather
156
+ than an action chunk.
157
+
158
+ ```
159
+ (n_knots, 1 + action_dim) = (16, 7) = 112 values per prediction
160
+ column 0 knot vector, in source-frame units, 0 = "now"
161
+ columns 1: control points, one per joint
162
+ ```
163
+
164
+ | | |
165
+ |---|---|
166
+ | Params | 51.6 M |
167
+ | Vision backbone | ResNet18 (ImageNet init, fine-tuned) |
168
+ | dim_model / chunk_size | 512 / 16 |
169
+ | VAE | enabled, kl_weight 10.0 |
170
+ | B-spline degree | 3 (cubic, C² continuous) |
171
+ | bspline_chunk_size | 10 |
172
+ | Fitting tolerance ε | 0.2 (degrees) |
173
+ | Max knot span | 6 frames |
174
+
175
+ The paper uses a DINOv2 encoder for its regression variant; this port uses LeRobot's
176
+ ResNet18, which is what LeRobot's ACT supports. The paper reports no backbone ablation,
177
+ and holds the encoder fixed between its baseline and its B-spline variant, so none of
178
+ its claims depend on that choice.
179
+
180
+ Segments span 0.50–1.10 s (0.76 s mean). The network runs only when a segment is
181
+ exhausted, which decouples policy rate from control rate.
182
+
183
+ ### On `max_knot_span`
184
+
185
+ This dataset is why the flag exists. Adaptive knot fitting covers a motionless stretch
186
+ with one enormous knot span, and uncapped fitting here produced segments with a **p95
187
+ of 18.4 seconds** — the policy would commit to eighteen seconds of open-loop motion
188
+ without looking at a camera. Capping span width at 6 frames bounds that at
189
+ `chunk_size × 6` = 2 s, costing 0.04× compression.
190
+
191
+ After correct idle-trimming the uncapped p95 drops to 1.17 s on its own, so the dead
192
+ recording time was the real cause. The cap remains as a cheap safety rail.
193
+
194
+ ## Evaluation
195
+
196
+ **Offline only. No hardware evaluation has been performed.**
197
+
198
+ | | Train (13 eps) | **Held-out (3 eps)** |
199
+ |---|---|---|
200
+ | Best checkpoint (10k) | 6.19° | **22.81°** |
201
+ | Final (40k) | 3.44° | 26.22° |
202
+
203
+ Reference points:
204
+
205
+ - **Inter-demonstration spread: 54.83°** — how far apart two human demonstrations of
206
+ this task are, phase-aligned. At 22.8° the policy is well inside that, so it is
207
+ extracting real per-episode information from the cameras rather than replaying an
208
+ average trajectory. This is the one genuinely positive result.
209
+ - **Hold-still baseline: 16.23°.** The policy scores worse than this. Over a 0.76 s
210
+ horizon on a slow task, "don't move" is a decent short-horizon *predictor* while
211
+ being a useless *policy*, so this is not the damning comparison it looks like — but
212
+ combined with the widening train/eval gap it is not encouraging either.
213
+
214
+ Held-out loss plateaued at ~0.39 by step 2,000 and never improved across the remaining
215
+ 38,000 steps.
216
+
217
+ ### Why the held-out number is a pessimistic bound
218
+
219
+ The split holds out the last 3 of 16 episodes. Inspecting the raw recording:
220
+
221
+ - 8 of 15 episode boundaries are contiguous to under 1° (several to exactly 0.00°), so
222
+ episodes were largely cut from a continuous teleoperation stream. Adjacent episodes
223
+ are correlated, meaning an interleaved split would leak.
224
+ - There is a 97.67° discontinuity between episodes 9 and 10, and episodes 10, 13, 14
225
+ and 15 all end with the gripper open (8–16°) while the other twelve end closed (~2°).
226
+ - **All three held-out episodes sit after that change point**, and two of them *start*
227
+ with the gripper open — a state the model never sees at t=0 in training.
228
+
229
+ So the tail split is biased pessimistic and an interleaved split would be biased
230
+ optimistic. With 16 semi-continuous episodes there is no clean holdout. 22.8° is a
231
+ lower bound on quality, not a verdict.
232
+
233
+ ## Limitations
234
+
235
+ - **13 training episodes is too few for this task.** This is the dominant limitation and
236
+ no hyperparameter fixed it. 40–50 demonstrations with varied cube placement and an
237
+ **independent reset between takes** would address both the training and the
238
+ measurement problem.
239
+ - **No hardware evaluation.** Task success rate is unknown, and given the above it
240
+ should not be assumed to be non-zero.
241
+ - **Held-out split is confounded** — see above.
242
+ - **Resolution and camera names differ** from the cup-stacking model. Check both.
243
+ - **Camera assignment is silent when wrong.**
244
+
245
+ ## Citation
246
+
247
+ ```bibtex
248
+ @article{han2026b,
249
+ title={B-spline Policy: Accelerating Manipulation Policies via B-spline Action Representations},
250
+ author={Han, Xiaoshen and Xiong, Haoyu and Chen, Haonan and Liu, Chaoqi and
251
+ Torralba, Antonio and Zhu, Yuke and Du, Yilun},
252
+ journal={arXiv preprint arXiv:2607.09648},
253
+ year={2026}
254
+ }
255
+ ```
checkpoints/010000/pretrained_model/config.json ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "type": "bspline_act",
3
+ "n_obs_steps": 1,
4
+ "input_features": {
5
+ "observation.state": {
6
+ "type": "STATE",
7
+ "shape": [
8
+ 6
9
+ ]
10
+ },
11
+ "observation.images.ee": {
12
+ "type": "VISUAL",
13
+ "shape": [
14
+ 3,
15
+ 360,
16
+ 640
17
+ ]
18
+ },
19
+ "observation.images.front": {
20
+ "type": "VISUAL",
21
+ "shape": [
22
+ 3,
23
+ 360,
24
+ 640
25
+ ]
26
+ }
27
+ },
28
+ "output_features": {
29
+ "action": {
30
+ "type": "ACTION",
31
+ "shape": [
32
+ 112
33
+ ]
34
+ }
35
+ },
36
+ "device": "cuda",
37
+ "use_amp": false,
38
+ "use_peft": false,
39
+ "push_to_hub": false,
40
+ "repo_id": null,
41
+ "private": null,
42
+ "tags": null,
43
+ "license": null,
44
+ "pretrained_path": "outputs/pickblock_bspline_act_aug/checkpoints/last/pretrained_model",
45
+ "pretrained_revision": null,
46
+ "chunk_size": 16,
47
+ "n_action_steps": 16,
48
+ "normalization_mapping": {
49
+ "VISUAL": "MEAN_STD",
50
+ "STATE": "MEAN_STD",
51
+ "ACTION": "MEAN_STD"
52
+ },
53
+ "vision_backbone": "resnet18",
54
+ "pretrained_backbone_weights": "ResNet18_Weights.IMAGENET1K_V1",
55
+ "replace_final_stride_with_dilation": 0,
56
+ "pre_norm": false,
57
+ "dim_model": 512,
58
+ "n_heads": 8,
59
+ "dim_feedforward": 3200,
60
+ "feedforward_activation": "relu",
61
+ "n_encoder_layers": 4,
62
+ "n_decoder_layers": 1,
63
+ "use_vae": true,
64
+ "latent_dim": 32,
65
+ "n_vae_encoder_layers": 4,
66
+ "temporal_ensemble_coeff": null,
67
+ "dropout": 0.1,
68
+ "kl_weight": 10.0,
69
+ "optimizer_lr": 2e-05,
70
+ "optimizer_weight_decay": 0.001,
71
+ "optimizer_lr_backbone": 1e-05,
72
+ "bspline_degree": 3,
73
+ "bspline_chunk_size": 10,
74
+ "relative_knots": false,
75
+ "speed_up": 1.0,
76
+ "n_decoded_steps": 32,
77
+ "align_segments": true,
78
+ "align_error_threshold": 0.5,
79
+ "align_max_fraction": 0.2,
80
+ "align_exclude_last_dims": 1,
81
+ "replan_margin": 1.0,
82
+ "channels_last": true
83
+ }
checkpoints/010000/pretrained_model/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4e16d5b72180ba0ecf13a77f9a81b69b3f252d9ca457941ff211c19b65859d85
3
+ size 206360820
checkpoints/010000/pretrained_model/policy_postprocessor.json ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "policy_postprocessor",
3
+ "steps": [
4
+ {
5
+ "registry_name": "device_processor",
6
+ "config": {
7
+ "device": "cpu",
8
+ "float_dtype": null
9
+ }
10
+ }
11
+ ]
12
+ }
checkpoints/010000/pretrained_model/policy_preprocessor.json ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "policy_preprocessor",
3
+ "steps": [
4
+ {
5
+ "registry_name": "rename_observations_processor",
6
+ "config": {
7
+ "rename_map": {}
8
+ }
9
+ },
10
+ {
11
+ "registry_name": "to_batch_processor",
12
+ "config": {}
13
+ },
14
+ {
15
+ "registry_name": "device_processor",
16
+ "config": {
17
+ "device": "cuda",
18
+ "float_dtype": null
19
+ }
20
+ },
21
+ {
22
+ "registry_name": "normalizer_processor",
23
+ "config": {
24
+ "eps": 1e-08,
25
+ "features": {
26
+ "observation.state": {
27
+ "type": "STATE",
28
+ "shape": [
29
+ 6
30
+ ]
31
+ },
32
+ "observation.images.ee": {
33
+ "type": "VISUAL",
34
+ "shape": [
35
+ 3,
36
+ 360,
37
+ 640
38
+ ]
39
+ },
40
+ "observation.images.front": {
41
+ "type": "VISUAL",
42
+ "shape": [
43
+ 3,
44
+ 360,
45
+ 640
46
+ ]
47
+ },
48
+ "action": {
49
+ "type": "ACTION",
50
+ "shape": [
51
+ 112
52
+ ]
53
+ }
54
+ },
55
+ "norm_map": {
56
+ "VISUAL": "MEAN_STD",
57
+ "STATE": "MEAN_STD",
58
+ "ACTION": "MEAN_STD"
59
+ }
60
+ },
61
+ "state_file": "policy_preprocessor_step_3_normalizer_processor.safetensors"
62
+ }
63
+ ]
64
+ }
checkpoints/010000/pretrained_model/policy_preprocessor_step_3_normalizer_processor.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7b1863e4f75643077d48e73b9a90b50bec2e8a27fb3cb5d60195ac41d06ef48e
3
+ size 11544
checkpoints/010000/pretrained_model/train_config.json ADDED
@@ -0,0 +1,230 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "dataset": {
3
+ "repo_id": "aryankakad/pick_block_bowl_bspline",
4
+ "root": null,
5
+ "episodes": null,
6
+ "image_transforms": {
7
+ "enable": true,
8
+ "max_num_transforms": 3,
9
+ "random_order": false,
10
+ "tfs": {
11
+ "brightness": {
12
+ "weight": 1.0,
13
+ "type": "ColorJitter",
14
+ "kwargs": {
15
+ "brightness": [
16
+ 0.8,
17
+ 1.2
18
+ ]
19
+ }
20
+ },
21
+ "contrast": {
22
+ "weight": 1.0,
23
+ "type": "ColorJitter",
24
+ "kwargs": {
25
+ "contrast": [
26
+ 0.8,
27
+ 1.2
28
+ ]
29
+ }
30
+ },
31
+ "saturation": {
32
+ "weight": 1.0,
33
+ "type": "ColorJitter",
34
+ "kwargs": {
35
+ "saturation": [
36
+ 0.5,
37
+ 1.5
38
+ ]
39
+ }
40
+ },
41
+ "hue": {
42
+ "weight": 1.0,
43
+ "type": "ColorJitter",
44
+ "kwargs": {
45
+ "hue": [
46
+ -0.05,
47
+ 0.05
48
+ ]
49
+ }
50
+ },
51
+ "sharpness": {
52
+ "weight": 1.0,
53
+ "type": "SharpnessJitter",
54
+ "kwargs": {
55
+ "sharpness": [
56
+ 0.5,
57
+ 1.5
58
+ ]
59
+ }
60
+ },
61
+ "affine": {
62
+ "weight": 1.0,
63
+ "type": "RandomAffine",
64
+ "kwargs": {
65
+ "degrees": [
66
+ -5.0,
67
+ 5.0
68
+ ],
69
+ "translate": [
70
+ 0.05,
71
+ 0.05
72
+ ]
73
+ }
74
+ }
75
+ }
76
+ },
77
+ "revision": null,
78
+ "use_imagenet_stats": true,
79
+ "video_backend": "torchcodec",
80
+ "return_uint8": false,
81
+ "depth_output_unit": "mm",
82
+ "streaming": false,
83
+ "eval_split": 0.15
84
+ },
85
+ "env": null,
86
+ "policy": {
87
+ "type": "bspline_act",
88
+ "n_obs_steps": 1,
89
+ "input_features": {
90
+ "observation.state": {
91
+ "type": "STATE",
92
+ "shape": [
93
+ 6
94
+ ]
95
+ },
96
+ "observation.images.ee": {
97
+ "type": "VISUAL",
98
+ "shape": [
99
+ 3,
100
+ 360,
101
+ 640
102
+ ]
103
+ },
104
+ "observation.images.front": {
105
+ "type": "VISUAL",
106
+ "shape": [
107
+ 3,
108
+ 360,
109
+ 640
110
+ ]
111
+ }
112
+ },
113
+ "output_features": {
114
+ "action": {
115
+ "type": "ACTION",
116
+ "shape": [
117
+ 112
118
+ ]
119
+ }
120
+ },
121
+ "device": "cuda",
122
+ "use_amp": false,
123
+ "use_peft": false,
124
+ "push_to_hub": false,
125
+ "repo_id": null,
126
+ "private": null,
127
+ "tags": null,
128
+ "license": null,
129
+ "pretrained_path": "outputs/pickblock_bspline_act_aug/checkpoints/last/pretrained_model",
130
+ "pretrained_revision": null,
131
+ "chunk_size": 16,
132
+ "n_action_steps": 16,
133
+ "normalization_mapping": {
134
+ "VISUAL": "MEAN_STD",
135
+ "STATE": "MEAN_STD",
136
+ "ACTION": "MEAN_STD"
137
+ },
138
+ "vision_backbone": "resnet18",
139
+ "pretrained_backbone_weights": "ResNet18_Weights.IMAGENET1K_V1",
140
+ "replace_final_stride_with_dilation": 0,
141
+ "pre_norm": false,
142
+ "dim_model": 512,
143
+ "n_heads": 8,
144
+ "dim_feedforward": 3200,
145
+ "feedforward_activation": "relu",
146
+ "n_encoder_layers": 4,
147
+ "n_decoder_layers": 1,
148
+ "use_vae": true,
149
+ "latent_dim": 32,
150
+ "n_vae_encoder_layers": 4,
151
+ "temporal_ensemble_coeff": null,
152
+ "dropout": 0.1,
153
+ "kl_weight": 10.0,
154
+ "optimizer_lr": 2e-05,
155
+ "optimizer_weight_decay": 0.001,
156
+ "optimizer_lr_backbone": 1e-05,
157
+ "bspline_degree": 3,
158
+ "bspline_chunk_size": 10,
159
+ "relative_knots": false,
160
+ "speed_up": 1.0,
161
+ "n_decoded_steps": 32,
162
+ "align_segments": true,
163
+ "align_error_threshold": 0.5,
164
+ "align_max_fraction": 0.2,
165
+ "align_exclude_last_dims": 1,
166
+ "replan_margin": 1.0,
167
+ "channels_last": true
168
+ },
169
+ "reward_model": null,
170
+ "output_dir": "outputs/pickblock_bspline_act_aug",
171
+ "job_name": "bspline_act",
172
+ "resume": true,
173
+ "seed": 1000,
174
+ "cudnn_deterministic": false,
175
+ "num_workers": 8,
176
+ "batch_size": 32,
177
+ "prefetch_factor": 4,
178
+ "persistent_workers": true,
179
+ "steps": 40000,
180
+ "env_eval_freq": 20000,
181
+ "log_freq": 250,
182
+ "eval_steps": 1000,
183
+ "max_eval_samples": 512,
184
+ "tolerance_s": 0.0001,
185
+ "save_checkpoint": true,
186
+ "save_freq": 5000,
187
+ "use_policy_training_preset": true,
188
+ "optimizer": {
189
+ "type": "adamw",
190
+ "lr": 2e-05,
191
+ "weight_decay": 0.001,
192
+ "grad_clip_norm": 10.0,
193
+ "betas": [
194
+ 0.9,
195
+ 0.999
196
+ ],
197
+ "eps": 1e-08
198
+ },
199
+ "scheduler": null,
200
+ "eval": {
201
+ "n_episodes": 50,
202
+ "batch_size": 22,
203
+ "use_async_envs": true,
204
+ "recording": false,
205
+ "recording_repo_id": null,
206
+ "recording_private": false
207
+ },
208
+ "wandb": {
209
+ "enable": false,
210
+ "disable_artifact": false,
211
+ "project": "lerobot",
212
+ "entity": null,
213
+ "notes": null,
214
+ "run_id": null,
215
+ "mode": null,
216
+ "add_tags": true
217
+ },
218
+ "peft": null,
219
+ "job": {
220
+ "target": null,
221
+ "image": "huggingface/lerobot-gpu:latest",
222
+ "timeout": "2d",
223
+ "detach": false,
224
+ "tags": []
225
+ },
226
+ "save_checkpoint_to_hub": false,
227
+ "sample_weighting": null,
228
+ "rename_map": {},
229
+ "checkpoint_path": "outputs/pickblock_bspline_act_aug/checkpoints/last"
230
+ }
checkpoints/020000/pretrained_model/config.json ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "type": "bspline_act",
3
+ "n_obs_steps": 1,
4
+ "input_features": {
5
+ "observation.state": {
6
+ "type": "STATE",
7
+ "shape": [
8
+ 6
9
+ ]
10
+ },
11
+ "observation.images.ee": {
12
+ "type": "VISUAL",
13
+ "shape": [
14
+ 3,
15
+ 360,
16
+ 640
17
+ ]
18
+ },
19
+ "observation.images.front": {
20
+ "type": "VISUAL",
21
+ "shape": [
22
+ 3,
23
+ 360,
24
+ 640
25
+ ]
26
+ }
27
+ },
28
+ "output_features": {
29
+ "action": {
30
+ "type": "ACTION",
31
+ "shape": [
32
+ 112
33
+ ]
34
+ }
35
+ },
36
+ "device": "cuda",
37
+ "use_amp": false,
38
+ "use_peft": false,
39
+ "push_to_hub": false,
40
+ "repo_id": null,
41
+ "private": null,
42
+ "tags": null,
43
+ "license": null,
44
+ "pretrained_path": "outputs/pickblock_bspline_act_aug/checkpoints/last/pretrained_model",
45
+ "pretrained_revision": null,
46
+ "chunk_size": 16,
47
+ "n_action_steps": 16,
48
+ "normalization_mapping": {
49
+ "VISUAL": "MEAN_STD",
50
+ "STATE": "MEAN_STD",
51
+ "ACTION": "MEAN_STD"
52
+ },
53
+ "vision_backbone": "resnet18",
54
+ "pretrained_backbone_weights": "ResNet18_Weights.IMAGENET1K_V1",
55
+ "replace_final_stride_with_dilation": 0,
56
+ "pre_norm": false,
57
+ "dim_model": 512,
58
+ "n_heads": 8,
59
+ "dim_feedforward": 3200,
60
+ "feedforward_activation": "relu",
61
+ "n_encoder_layers": 4,
62
+ "n_decoder_layers": 1,
63
+ "use_vae": true,
64
+ "latent_dim": 32,
65
+ "n_vae_encoder_layers": 4,
66
+ "temporal_ensemble_coeff": null,
67
+ "dropout": 0.1,
68
+ "kl_weight": 10.0,
69
+ "optimizer_lr": 2e-05,
70
+ "optimizer_weight_decay": 0.001,
71
+ "optimizer_lr_backbone": 1e-05,
72
+ "bspline_degree": 3,
73
+ "bspline_chunk_size": 10,
74
+ "relative_knots": false,
75
+ "speed_up": 1.0,
76
+ "n_decoded_steps": 32,
77
+ "align_segments": true,
78
+ "align_error_threshold": 0.5,
79
+ "align_max_fraction": 0.2,
80
+ "align_exclude_last_dims": 1,
81
+ "replan_margin": 1.0,
82
+ "channels_last": true
83
+ }
checkpoints/020000/pretrained_model/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c062e889da46ea6a81ef9a03d9cbddbe6a3d29f0d6ba9ab60538b9a7f9cc1e73
3
+ size 206360820
checkpoints/020000/pretrained_model/policy_postprocessor.json ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "policy_postprocessor",
3
+ "steps": [
4
+ {
5
+ "registry_name": "device_processor",
6
+ "config": {
7
+ "device": "cpu",
8
+ "float_dtype": null
9
+ }
10
+ }
11
+ ]
12
+ }
checkpoints/020000/pretrained_model/policy_preprocessor.json ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "policy_preprocessor",
3
+ "steps": [
4
+ {
5
+ "registry_name": "rename_observations_processor",
6
+ "config": {
7
+ "rename_map": {}
8
+ }
9
+ },
10
+ {
11
+ "registry_name": "to_batch_processor",
12
+ "config": {}
13
+ },
14
+ {
15
+ "registry_name": "device_processor",
16
+ "config": {
17
+ "device": "cuda",
18
+ "float_dtype": null
19
+ }
20
+ },
21
+ {
22
+ "registry_name": "normalizer_processor",
23
+ "config": {
24
+ "eps": 1e-08,
25
+ "features": {
26
+ "observation.state": {
27
+ "type": "STATE",
28
+ "shape": [
29
+ 6
30
+ ]
31
+ },
32
+ "observation.images.ee": {
33
+ "type": "VISUAL",
34
+ "shape": [
35
+ 3,
36
+ 360,
37
+ 640
38
+ ]
39
+ },
40
+ "observation.images.front": {
41
+ "type": "VISUAL",
42
+ "shape": [
43
+ 3,
44
+ 360,
45
+ 640
46
+ ]
47
+ },
48
+ "action": {
49
+ "type": "ACTION",
50
+ "shape": [
51
+ 112
52
+ ]
53
+ }
54
+ },
55
+ "norm_map": {
56
+ "VISUAL": "MEAN_STD",
57
+ "STATE": "MEAN_STD",
58
+ "ACTION": "MEAN_STD"
59
+ }
60
+ },
61
+ "state_file": "policy_preprocessor_step_3_normalizer_processor.safetensors"
62
+ }
63
+ ]
64
+ }
checkpoints/020000/pretrained_model/policy_preprocessor_step_3_normalizer_processor.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7b1863e4f75643077d48e73b9a90b50bec2e8a27fb3cb5d60195ac41d06ef48e
3
+ size 11544
checkpoints/020000/pretrained_model/train_config.json ADDED
@@ -0,0 +1,230 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "dataset": {
3
+ "repo_id": "aryankakad/pick_block_bowl_bspline",
4
+ "root": null,
5
+ "episodes": null,
6
+ "image_transforms": {
7
+ "enable": true,
8
+ "max_num_transforms": 3,
9
+ "random_order": false,
10
+ "tfs": {
11
+ "brightness": {
12
+ "weight": 1.0,
13
+ "type": "ColorJitter",
14
+ "kwargs": {
15
+ "brightness": [
16
+ 0.8,
17
+ 1.2
18
+ ]
19
+ }
20
+ },
21
+ "contrast": {
22
+ "weight": 1.0,
23
+ "type": "ColorJitter",
24
+ "kwargs": {
25
+ "contrast": [
26
+ 0.8,
27
+ 1.2
28
+ ]
29
+ }
30
+ },
31
+ "saturation": {
32
+ "weight": 1.0,
33
+ "type": "ColorJitter",
34
+ "kwargs": {
35
+ "saturation": [
36
+ 0.5,
37
+ 1.5
38
+ ]
39
+ }
40
+ },
41
+ "hue": {
42
+ "weight": 1.0,
43
+ "type": "ColorJitter",
44
+ "kwargs": {
45
+ "hue": [
46
+ -0.05,
47
+ 0.05
48
+ ]
49
+ }
50
+ },
51
+ "sharpness": {
52
+ "weight": 1.0,
53
+ "type": "SharpnessJitter",
54
+ "kwargs": {
55
+ "sharpness": [
56
+ 0.5,
57
+ 1.5
58
+ ]
59
+ }
60
+ },
61
+ "affine": {
62
+ "weight": 1.0,
63
+ "type": "RandomAffine",
64
+ "kwargs": {
65
+ "degrees": [
66
+ -5.0,
67
+ 5.0
68
+ ],
69
+ "translate": [
70
+ 0.05,
71
+ 0.05
72
+ ]
73
+ }
74
+ }
75
+ }
76
+ },
77
+ "revision": null,
78
+ "use_imagenet_stats": true,
79
+ "video_backend": "torchcodec",
80
+ "return_uint8": false,
81
+ "depth_output_unit": "mm",
82
+ "streaming": false,
83
+ "eval_split": 0.15
84
+ },
85
+ "env": null,
86
+ "policy": {
87
+ "type": "bspline_act",
88
+ "n_obs_steps": 1,
89
+ "input_features": {
90
+ "observation.state": {
91
+ "type": "STATE",
92
+ "shape": [
93
+ 6
94
+ ]
95
+ },
96
+ "observation.images.ee": {
97
+ "type": "VISUAL",
98
+ "shape": [
99
+ 3,
100
+ 360,
101
+ 640
102
+ ]
103
+ },
104
+ "observation.images.front": {
105
+ "type": "VISUAL",
106
+ "shape": [
107
+ 3,
108
+ 360,
109
+ 640
110
+ ]
111
+ }
112
+ },
113
+ "output_features": {
114
+ "action": {
115
+ "type": "ACTION",
116
+ "shape": [
117
+ 112
118
+ ]
119
+ }
120
+ },
121
+ "device": "cuda",
122
+ "use_amp": false,
123
+ "use_peft": false,
124
+ "push_to_hub": false,
125
+ "repo_id": null,
126
+ "private": null,
127
+ "tags": null,
128
+ "license": null,
129
+ "pretrained_path": "outputs/pickblock_bspline_act_aug/checkpoints/last/pretrained_model",
130
+ "pretrained_revision": null,
131
+ "chunk_size": 16,
132
+ "n_action_steps": 16,
133
+ "normalization_mapping": {
134
+ "VISUAL": "MEAN_STD",
135
+ "STATE": "MEAN_STD",
136
+ "ACTION": "MEAN_STD"
137
+ },
138
+ "vision_backbone": "resnet18",
139
+ "pretrained_backbone_weights": "ResNet18_Weights.IMAGENET1K_V1",
140
+ "replace_final_stride_with_dilation": 0,
141
+ "pre_norm": false,
142
+ "dim_model": 512,
143
+ "n_heads": 8,
144
+ "dim_feedforward": 3200,
145
+ "feedforward_activation": "relu",
146
+ "n_encoder_layers": 4,
147
+ "n_decoder_layers": 1,
148
+ "use_vae": true,
149
+ "latent_dim": 32,
150
+ "n_vae_encoder_layers": 4,
151
+ "temporal_ensemble_coeff": null,
152
+ "dropout": 0.1,
153
+ "kl_weight": 10.0,
154
+ "optimizer_lr": 2e-05,
155
+ "optimizer_weight_decay": 0.001,
156
+ "optimizer_lr_backbone": 1e-05,
157
+ "bspline_degree": 3,
158
+ "bspline_chunk_size": 10,
159
+ "relative_knots": false,
160
+ "speed_up": 1.0,
161
+ "n_decoded_steps": 32,
162
+ "align_segments": true,
163
+ "align_error_threshold": 0.5,
164
+ "align_max_fraction": 0.2,
165
+ "align_exclude_last_dims": 1,
166
+ "replan_margin": 1.0,
167
+ "channels_last": true
168
+ },
169
+ "reward_model": null,
170
+ "output_dir": "outputs/pickblock_bspline_act_aug",
171
+ "job_name": "bspline_act",
172
+ "resume": true,
173
+ "seed": 1000,
174
+ "cudnn_deterministic": false,
175
+ "num_workers": 8,
176
+ "batch_size": 32,
177
+ "prefetch_factor": 4,
178
+ "persistent_workers": true,
179
+ "steps": 40000,
180
+ "env_eval_freq": 20000,
181
+ "log_freq": 250,
182
+ "eval_steps": 1000,
183
+ "max_eval_samples": 512,
184
+ "tolerance_s": 0.0001,
185
+ "save_checkpoint": true,
186
+ "save_freq": 5000,
187
+ "use_policy_training_preset": true,
188
+ "optimizer": {
189
+ "type": "adamw",
190
+ "lr": 2e-05,
191
+ "weight_decay": 0.001,
192
+ "grad_clip_norm": 10.0,
193
+ "betas": [
194
+ 0.9,
195
+ 0.999
196
+ ],
197
+ "eps": 1e-08
198
+ },
199
+ "scheduler": null,
200
+ "eval": {
201
+ "n_episodes": 50,
202
+ "batch_size": 22,
203
+ "use_async_envs": true,
204
+ "recording": false,
205
+ "recording_repo_id": null,
206
+ "recording_private": false
207
+ },
208
+ "wandb": {
209
+ "enable": false,
210
+ "disable_artifact": false,
211
+ "project": "lerobot",
212
+ "entity": null,
213
+ "notes": null,
214
+ "run_id": null,
215
+ "mode": null,
216
+ "add_tags": true
217
+ },
218
+ "peft": null,
219
+ "job": {
220
+ "target": null,
221
+ "image": "huggingface/lerobot-gpu:latest",
222
+ "timeout": "2d",
223
+ "detach": false,
224
+ "tags": []
225
+ },
226
+ "save_checkpoint_to_hub": false,
227
+ "sample_weighting": null,
228
+ "rename_map": {},
229
+ "checkpoint_path": "outputs/pickblock_bspline_act_aug/checkpoints/last"
230
+ }
checkpoints/030000/pretrained_model/config.json ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "type": "bspline_act",
3
+ "n_obs_steps": 1,
4
+ "input_features": {
5
+ "observation.state": {
6
+ "type": "STATE",
7
+ "shape": [
8
+ 6
9
+ ]
10
+ },
11
+ "observation.images.ee": {
12
+ "type": "VISUAL",
13
+ "shape": [
14
+ 3,
15
+ 360,
16
+ 640
17
+ ]
18
+ },
19
+ "observation.images.front": {
20
+ "type": "VISUAL",
21
+ "shape": [
22
+ 3,
23
+ 360,
24
+ 640
25
+ ]
26
+ }
27
+ },
28
+ "output_features": {
29
+ "action": {
30
+ "type": "ACTION",
31
+ "shape": [
32
+ 112
33
+ ]
34
+ }
35
+ },
36
+ "device": "cuda",
37
+ "use_amp": false,
38
+ "use_peft": false,
39
+ "push_to_hub": false,
40
+ "repo_id": null,
41
+ "private": null,
42
+ "tags": null,
43
+ "license": null,
44
+ "pretrained_path": "outputs/pickblock_bspline_act_aug/checkpoints/last/pretrained_model",
45
+ "pretrained_revision": null,
46
+ "chunk_size": 16,
47
+ "n_action_steps": 16,
48
+ "normalization_mapping": {
49
+ "VISUAL": "MEAN_STD",
50
+ "STATE": "MEAN_STD",
51
+ "ACTION": "MEAN_STD"
52
+ },
53
+ "vision_backbone": "resnet18",
54
+ "pretrained_backbone_weights": "ResNet18_Weights.IMAGENET1K_V1",
55
+ "replace_final_stride_with_dilation": 0,
56
+ "pre_norm": false,
57
+ "dim_model": 512,
58
+ "n_heads": 8,
59
+ "dim_feedforward": 3200,
60
+ "feedforward_activation": "relu",
61
+ "n_encoder_layers": 4,
62
+ "n_decoder_layers": 1,
63
+ "use_vae": true,
64
+ "latent_dim": 32,
65
+ "n_vae_encoder_layers": 4,
66
+ "temporal_ensemble_coeff": null,
67
+ "dropout": 0.1,
68
+ "kl_weight": 10.0,
69
+ "optimizer_lr": 2e-05,
70
+ "optimizer_weight_decay": 0.001,
71
+ "optimizer_lr_backbone": 1e-05,
72
+ "bspline_degree": 3,
73
+ "bspline_chunk_size": 10,
74
+ "relative_knots": false,
75
+ "speed_up": 1.0,
76
+ "n_decoded_steps": 32,
77
+ "align_segments": true,
78
+ "align_error_threshold": 0.5,
79
+ "align_max_fraction": 0.2,
80
+ "align_exclude_last_dims": 1,
81
+ "replan_margin": 1.0,
82
+ "channels_last": true
83
+ }
checkpoints/030000/pretrained_model/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ad487ea70d1fe034680f950378c0453f4cf9a2cccfefb7631816054297363f35
3
+ size 206360820
checkpoints/030000/pretrained_model/policy_postprocessor.json ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "policy_postprocessor",
3
+ "steps": [
4
+ {
5
+ "registry_name": "device_processor",
6
+ "config": {
7
+ "device": "cpu",
8
+ "float_dtype": null
9
+ }
10
+ }
11
+ ]
12
+ }
checkpoints/030000/pretrained_model/policy_preprocessor.json ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "policy_preprocessor",
3
+ "steps": [
4
+ {
5
+ "registry_name": "rename_observations_processor",
6
+ "config": {
7
+ "rename_map": {}
8
+ }
9
+ },
10
+ {
11
+ "registry_name": "to_batch_processor",
12
+ "config": {}
13
+ },
14
+ {
15
+ "registry_name": "device_processor",
16
+ "config": {
17
+ "device": "cuda",
18
+ "float_dtype": null
19
+ }
20
+ },
21
+ {
22
+ "registry_name": "normalizer_processor",
23
+ "config": {
24
+ "eps": 1e-08,
25
+ "features": {
26
+ "observation.state": {
27
+ "type": "STATE",
28
+ "shape": [
29
+ 6
30
+ ]
31
+ },
32
+ "observation.images.ee": {
33
+ "type": "VISUAL",
34
+ "shape": [
35
+ 3,
36
+ 360,
37
+ 640
38
+ ]
39
+ },
40
+ "observation.images.front": {
41
+ "type": "VISUAL",
42
+ "shape": [
43
+ 3,
44
+ 360,
45
+ 640
46
+ ]
47
+ },
48
+ "action": {
49
+ "type": "ACTION",
50
+ "shape": [
51
+ 112
52
+ ]
53
+ }
54
+ },
55
+ "norm_map": {
56
+ "VISUAL": "MEAN_STD",
57
+ "STATE": "MEAN_STD",
58
+ "ACTION": "MEAN_STD"
59
+ }
60
+ },
61
+ "state_file": "policy_preprocessor_step_3_normalizer_processor.safetensors"
62
+ }
63
+ ]
64
+ }
checkpoints/030000/pretrained_model/policy_preprocessor_step_3_normalizer_processor.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7b1863e4f75643077d48e73b9a90b50bec2e8a27fb3cb5d60195ac41d06ef48e
3
+ size 11544
checkpoints/030000/pretrained_model/train_config.json ADDED
@@ -0,0 +1,230 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "dataset": {
3
+ "repo_id": "aryankakad/pick_block_bowl_bspline",
4
+ "root": null,
5
+ "episodes": null,
6
+ "image_transforms": {
7
+ "enable": true,
8
+ "max_num_transforms": 3,
9
+ "random_order": false,
10
+ "tfs": {
11
+ "brightness": {
12
+ "weight": 1.0,
13
+ "type": "ColorJitter",
14
+ "kwargs": {
15
+ "brightness": [
16
+ 0.8,
17
+ 1.2
18
+ ]
19
+ }
20
+ },
21
+ "contrast": {
22
+ "weight": 1.0,
23
+ "type": "ColorJitter",
24
+ "kwargs": {
25
+ "contrast": [
26
+ 0.8,
27
+ 1.2
28
+ ]
29
+ }
30
+ },
31
+ "saturation": {
32
+ "weight": 1.0,
33
+ "type": "ColorJitter",
34
+ "kwargs": {
35
+ "saturation": [
36
+ 0.5,
37
+ 1.5
38
+ ]
39
+ }
40
+ },
41
+ "hue": {
42
+ "weight": 1.0,
43
+ "type": "ColorJitter",
44
+ "kwargs": {
45
+ "hue": [
46
+ -0.05,
47
+ 0.05
48
+ ]
49
+ }
50
+ },
51
+ "sharpness": {
52
+ "weight": 1.0,
53
+ "type": "SharpnessJitter",
54
+ "kwargs": {
55
+ "sharpness": [
56
+ 0.5,
57
+ 1.5
58
+ ]
59
+ }
60
+ },
61
+ "affine": {
62
+ "weight": 1.0,
63
+ "type": "RandomAffine",
64
+ "kwargs": {
65
+ "degrees": [
66
+ -5.0,
67
+ 5.0
68
+ ],
69
+ "translate": [
70
+ 0.05,
71
+ 0.05
72
+ ]
73
+ }
74
+ }
75
+ }
76
+ },
77
+ "revision": null,
78
+ "use_imagenet_stats": true,
79
+ "video_backend": "torchcodec",
80
+ "return_uint8": false,
81
+ "depth_output_unit": "mm",
82
+ "streaming": false,
83
+ "eval_split": 0.15
84
+ },
85
+ "env": null,
86
+ "policy": {
87
+ "type": "bspline_act",
88
+ "n_obs_steps": 1,
89
+ "input_features": {
90
+ "observation.state": {
91
+ "type": "STATE",
92
+ "shape": [
93
+ 6
94
+ ]
95
+ },
96
+ "observation.images.ee": {
97
+ "type": "VISUAL",
98
+ "shape": [
99
+ 3,
100
+ 360,
101
+ 640
102
+ ]
103
+ },
104
+ "observation.images.front": {
105
+ "type": "VISUAL",
106
+ "shape": [
107
+ 3,
108
+ 360,
109
+ 640
110
+ ]
111
+ }
112
+ },
113
+ "output_features": {
114
+ "action": {
115
+ "type": "ACTION",
116
+ "shape": [
117
+ 112
118
+ ]
119
+ }
120
+ },
121
+ "device": "cuda",
122
+ "use_amp": false,
123
+ "use_peft": false,
124
+ "push_to_hub": false,
125
+ "repo_id": null,
126
+ "private": null,
127
+ "tags": null,
128
+ "license": null,
129
+ "pretrained_path": "outputs/pickblock_bspline_act_aug/checkpoints/last/pretrained_model",
130
+ "pretrained_revision": null,
131
+ "chunk_size": 16,
132
+ "n_action_steps": 16,
133
+ "normalization_mapping": {
134
+ "VISUAL": "MEAN_STD",
135
+ "STATE": "MEAN_STD",
136
+ "ACTION": "MEAN_STD"
137
+ },
138
+ "vision_backbone": "resnet18",
139
+ "pretrained_backbone_weights": "ResNet18_Weights.IMAGENET1K_V1",
140
+ "replace_final_stride_with_dilation": 0,
141
+ "pre_norm": false,
142
+ "dim_model": 512,
143
+ "n_heads": 8,
144
+ "dim_feedforward": 3200,
145
+ "feedforward_activation": "relu",
146
+ "n_encoder_layers": 4,
147
+ "n_decoder_layers": 1,
148
+ "use_vae": true,
149
+ "latent_dim": 32,
150
+ "n_vae_encoder_layers": 4,
151
+ "temporal_ensemble_coeff": null,
152
+ "dropout": 0.1,
153
+ "kl_weight": 10.0,
154
+ "optimizer_lr": 2e-05,
155
+ "optimizer_weight_decay": 0.001,
156
+ "optimizer_lr_backbone": 1e-05,
157
+ "bspline_degree": 3,
158
+ "bspline_chunk_size": 10,
159
+ "relative_knots": false,
160
+ "speed_up": 1.0,
161
+ "n_decoded_steps": 32,
162
+ "align_segments": true,
163
+ "align_error_threshold": 0.5,
164
+ "align_max_fraction": 0.2,
165
+ "align_exclude_last_dims": 1,
166
+ "replan_margin": 1.0,
167
+ "channels_last": true
168
+ },
169
+ "reward_model": null,
170
+ "output_dir": "outputs/pickblock_bspline_act_aug",
171
+ "job_name": "bspline_act",
172
+ "resume": true,
173
+ "seed": 1000,
174
+ "cudnn_deterministic": false,
175
+ "num_workers": 8,
176
+ "batch_size": 32,
177
+ "prefetch_factor": 4,
178
+ "persistent_workers": true,
179
+ "steps": 40000,
180
+ "env_eval_freq": 20000,
181
+ "log_freq": 250,
182
+ "eval_steps": 1000,
183
+ "max_eval_samples": 512,
184
+ "tolerance_s": 0.0001,
185
+ "save_checkpoint": true,
186
+ "save_freq": 5000,
187
+ "use_policy_training_preset": true,
188
+ "optimizer": {
189
+ "type": "adamw",
190
+ "lr": 2e-05,
191
+ "weight_decay": 0.001,
192
+ "grad_clip_norm": 10.0,
193
+ "betas": [
194
+ 0.9,
195
+ 0.999
196
+ ],
197
+ "eps": 1e-08
198
+ },
199
+ "scheduler": null,
200
+ "eval": {
201
+ "n_episodes": 50,
202
+ "batch_size": 22,
203
+ "use_async_envs": true,
204
+ "recording": false,
205
+ "recording_repo_id": null,
206
+ "recording_private": false
207
+ },
208
+ "wandb": {
209
+ "enable": false,
210
+ "disable_artifact": false,
211
+ "project": "lerobot",
212
+ "entity": null,
213
+ "notes": null,
214
+ "run_id": null,
215
+ "mode": null,
216
+ "add_tags": true
217
+ },
218
+ "peft": null,
219
+ "job": {
220
+ "target": null,
221
+ "image": "huggingface/lerobot-gpu:latest",
222
+ "timeout": "2d",
223
+ "detach": false,
224
+ "tags": []
225
+ },
226
+ "save_checkpoint_to_hub": false,
227
+ "sample_weighting": null,
228
+ "rename_map": {},
229
+ "checkpoint_path": "outputs/pickblock_bspline_act_aug/checkpoints/last"
230
+ }
checkpoints/040000/pretrained_model/config.json ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "type": "bspline_act",
3
+ "n_obs_steps": 1,
4
+ "input_features": {
5
+ "observation.state": {
6
+ "type": "STATE",
7
+ "shape": [
8
+ 6
9
+ ]
10
+ },
11
+ "observation.images.ee": {
12
+ "type": "VISUAL",
13
+ "shape": [
14
+ 3,
15
+ 360,
16
+ 640
17
+ ]
18
+ },
19
+ "observation.images.front": {
20
+ "type": "VISUAL",
21
+ "shape": [
22
+ 3,
23
+ 360,
24
+ 640
25
+ ]
26
+ }
27
+ },
28
+ "output_features": {
29
+ "action": {
30
+ "type": "ACTION",
31
+ "shape": [
32
+ 112
33
+ ]
34
+ }
35
+ },
36
+ "device": "cuda",
37
+ "use_amp": false,
38
+ "use_peft": false,
39
+ "push_to_hub": false,
40
+ "repo_id": null,
41
+ "private": null,
42
+ "tags": null,
43
+ "license": null,
44
+ "pretrained_path": "outputs/pickblock_bspline_act_aug/checkpoints/last/pretrained_model",
45
+ "pretrained_revision": null,
46
+ "chunk_size": 16,
47
+ "n_action_steps": 16,
48
+ "normalization_mapping": {
49
+ "VISUAL": "MEAN_STD",
50
+ "STATE": "MEAN_STD",
51
+ "ACTION": "MEAN_STD"
52
+ },
53
+ "vision_backbone": "resnet18",
54
+ "pretrained_backbone_weights": "ResNet18_Weights.IMAGENET1K_V1",
55
+ "replace_final_stride_with_dilation": 0,
56
+ "pre_norm": false,
57
+ "dim_model": 512,
58
+ "n_heads": 8,
59
+ "dim_feedforward": 3200,
60
+ "feedforward_activation": "relu",
61
+ "n_encoder_layers": 4,
62
+ "n_decoder_layers": 1,
63
+ "use_vae": true,
64
+ "latent_dim": 32,
65
+ "n_vae_encoder_layers": 4,
66
+ "temporal_ensemble_coeff": null,
67
+ "dropout": 0.1,
68
+ "kl_weight": 10.0,
69
+ "optimizer_lr": 2e-05,
70
+ "optimizer_weight_decay": 0.001,
71
+ "optimizer_lr_backbone": 1e-05,
72
+ "bspline_degree": 3,
73
+ "bspline_chunk_size": 10,
74
+ "relative_knots": false,
75
+ "speed_up": 1.0,
76
+ "n_decoded_steps": 32,
77
+ "align_segments": true,
78
+ "align_error_threshold": 0.5,
79
+ "align_max_fraction": 0.2,
80
+ "align_exclude_last_dims": 1,
81
+ "replan_margin": 1.0,
82
+ "channels_last": true
83
+ }
checkpoints/040000/pretrained_model/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3205af457d14f2629e276a3371abc925ea5304c1e74eeb9444eadcca01dcb27d
3
+ size 206360820
checkpoints/040000/pretrained_model/policy_postprocessor.json ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "policy_postprocessor",
3
+ "steps": [
4
+ {
5
+ "registry_name": "device_processor",
6
+ "config": {
7
+ "device": "cpu",
8
+ "float_dtype": null
9
+ }
10
+ }
11
+ ]
12
+ }
checkpoints/040000/pretrained_model/policy_preprocessor.json ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "policy_preprocessor",
3
+ "steps": [
4
+ {
5
+ "registry_name": "rename_observations_processor",
6
+ "config": {
7
+ "rename_map": {}
8
+ }
9
+ },
10
+ {
11
+ "registry_name": "to_batch_processor",
12
+ "config": {}
13
+ },
14
+ {
15
+ "registry_name": "device_processor",
16
+ "config": {
17
+ "device": "cuda",
18
+ "float_dtype": null
19
+ }
20
+ },
21
+ {
22
+ "registry_name": "normalizer_processor",
23
+ "config": {
24
+ "eps": 1e-08,
25
+ "features": {
26
+ "observation.state": {
27
+ "type": "STATE",
28
+ "shape": [
29
+ 6
30
+ ]
31
+ },
32
+ "observation.images.ee": {
33
+ "type": "VISUAL",
34
+ "shape": [
35
+ 3,
36
+ 360,
37
+ 640
38
+ ]
39
+ },
40
+ "observation.images.front": {
41
+ "type": "VISUAL",
42
+ "shape": [
43
+ 3,
44
+ 360,
45
+ 640
46
+ ]
47
+ },
48
+ "action": {
49
+ "type": "ACTION",
50
+ "shape": [
51
+ 112
52
+ ]
53
+ }
54
+ },
55
+ "norm_map": {
56
+ "VISUAL": "MEAN_STD",
57
+ "STATE": "MEAN_STD",
58
+ "ACTION": "MEAN_STD"
59
+ }
60
+ },
61
+ "state_file": "policy_preprocessor_step_3_normalizer_processor.safetensors"
62
+ }
63
+ ]
64
+ }
checkpoints/040000/pretrained_model/policy_preprocessor_step_3_normalizer_processor.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7b1863e4f75643077d48e73b9a90b50bec2e8a27fb3cb5d60195ac41d06ef48e
3
+ size 11544
checkpoints/040000/pretrained_model/train_config.json ADDED
@@ -0,0 +1,230 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "dataset": {
3
+ "repo_id": "aryankakad/pick_block_bowl_bspline",
4
+ "root": null,
5
+ "episodes": null,
6
+ "image_transforms": {
7
+ "enable": true,
8
+ "max_num_transforms": 3,
9
+ "random_order": false,
10
+ "tfs": {
11
+ "brightness": {
12
+ "weight": 1.0,
13
+ "type": "ColorJitter",
14
+ "kwargs": {
15
+ "brightness": [
16
+ 0.8,
17
+ 1.2
18
+ ]
19
+ }
20
+ },
21
+ "contrast": {
22
+ "weight": 1.0,
23
+ "type": "ColorJitter",
24
+ "kwargs": {
25
+ "contrast": [
26
+ 0.8,
27
+ 1.2
28
+ ]
29
+ }
30
+ },
31
+ "saturation": {
32
+ "weight": 1.0,
33
+ "type": "ColorJitter",
34
+ "kwargs": {
35
+ "saturation": [
36
+ 0.5,
37
+ 1.5
38
+ ]
39
+ }
40
+ },
41
+ "hue": {
42
+ "weight": 1.0,
43
+ "type": "ColorJitter",
44
+ "kwargs": {
45
+ "hue": [
46
+ -0.05,
47
+ 0.05
48
+ ]
49
+ }
50
+ },
51
+ "sharpness": {
52
+ "weight": 1.0,
53
+ "type": "SharpnessJitter",
54
+ "kwargs": {
55
+ "sharpness": [
56
+ 0.5,
57
+ 1.5
58
+ ]
59
+ }
60
+ },
61
+ "affine": {
62
+ "weight": 1.0,
63
+ "type": "RandomAffine",
64
+ "kwargs": {
65
+ "degrees": [
66
+ -5.0,
67
+ 5.0
68
+ ],
69
+ "translate": [
70
+ 0.05,
71
+ 0.05
72
+ ]
73
+ }
74
+ }
75
+ }
76
+ },
77
+ "revision": null,
78
+ "use_imagenet_stats": true,
79
+ "video_backend": "torchcodec",
80
+ "return_uint8": false,
81
+ "depth_output_unit": "mm",
82
+ "streaming": false,
83
+ "eval_split": 0.15
84
+ },
85
+ "env": null,
86
+ "policy": {
87
+ "type": "bspline_act",
88
+ "n_obs_steps": 1,
89
+ "input_features": {
90
+ "observation.state": {
91
+ "type": "STATE",
92
+ "shape": [
93
+ 6
94
+ ]
95
+ },
96
+ "observation.images.ee": {
97
+ "type": "VISUAL",
98
+ "shape": [
99
+ 3,
100
+ 360,
101
+ 640
102
+ ]
103
+ },
104
+ "observation.images.front": {
105
+ "type": "VISUAL",
106
+ "shape": [
107
+ 3,
108
+ 360,
109
+ 640
110
+ ]
111
+ }
112
+ },
113
+ "output_features": {
114
+ "action": {
115
+ "type": "ACTION",
116
+ "shape": [
117
+ 112
118
+ ]
119
+ }
120
+ },
121
+ "device": "cuda",
122
+ "use_amp": false,
123
+ "use_peft": false,
124
+ "push_to_hub": false,
125
+ "repo_id": null,
126
+ "private": null,
127
+ "tags": null,
128
+ "license": null,
129
+ "pretrained_path": "outputs/pickblock_bspline_act_aug/checkpoints/last/pretrained_model",
130
+ "pretrained_revision": null,
131
+ "chunk_size": 16,
132
+ "n_action_steps": 16,
133
+ "normalization_mapping": {
134
+ "VISUAL": "MEAN_STD",
135
+ "STATE": "MEAN_STD",
136
+ "ACTION": "MEAN_STD"
137
+ },
138
+ "vision_backbone": "resnet18",
139
+ "pretrained_backbone_weights": "ResNet18_Weights.IMAGENET1K_V1",
140
+ "replace_final_stride_with_dilation": 0,
141
+ "pre_norm": false,
142
+ "dim_model": 512,
143
+ "n_heads": 8,
144
+ "dim_feedforward": 3200,
145
+ "feedforward_activation": "relu",
146
+ "n_encoder_layers": 4,
147
+ "n_decoder_layers": 1,
148
+ "use_vae": true,
149
+ "latent_dim": 32,
150
+ "n_vae_encoder_layers": 4,
151
+ "temporal_ensemble_coeff": null,
152
+ "dropout": 0.1,
153
+ "kl_weight": 10.0,
154
+ "optimizer_lr": 2e-05,
155
+ "optimizer_weight_decay": 0.001,
156
+ "optimizer_lr_backbone": 1e-05,
157
+ "bspline_degree": 3,
158
+ "bspline_chunk_size": 10,
159
+ "relative_knots": false,
160
+ "speed_up": 1.0,
161
+ "n_decoded_steps": 32,
162
+ "align_segments": true,
163
+ "align_error_threshold": 0.5,
164
+ "align_max_fraction": 0.2,
165
+ "align_exclude_last_dims": 1,
166
+ "replan_margin": 1.0,
167
+ "channels_last": true
168
+ },
169
+ "reward_model": null,
170
+ "output_dir": "outputs/pickblock_bspline_act_aug",
171
+ "job_name": "bspline_act",
172
+ "resume": true,
173
+ "seed": 1000,
174
+ "cudnn_deterministic": false,
175
+ "num_workers": 8,
176
+ "batch_size": 32,
177
+ "prefetch_factor": 4,
178
+ "persistent_workers": true,
179
+ "steps": 40000,
180
+ "env_eval_freq": 20000,
181
+ "log_freq": 250,
182
+ "eval_steps": 1000,
183
+ "max_eval_samples": 512,
184
+ "tolerance_s": 0.0001,
185
+ "save_checkpoint": true,
186
+ "save_freq": 5000,
187
+ "use_policy_training_preset": true,
188
+ "optimizer": {
189
+ "type": "adamw",
190
+ "lr": 2e-05,
191
+ "weight_decay": 0.001,
192
+ "grad_clip_norm": 10.0,
193
+ "betas": [
194
+ 0.9,
195
+ 0.999
196
+ ],
197
+ "eps": 1e-08
198
+ },
199
+ "scheduler": null,
200
+ "eval": {
201
+ "n_episodes": 50,
202
+ "batch_size": 22,
203
+ "use_async_envs": true,
204
+ "recording": false,
205
+ "recording_repo_id": null,
206
+ "recording_private": false
207
+ },
208
+ "wandb": {
209
+ "enable": false,
210
+ "disable_artifact": false,
211
+ "project": "lerobot",
212
+ "entity": null,
213
+ "notes": null,
214
+ "run_id": null,
215
+ "mode": null,
216
+ "add_tags": true
217
+ },
218
+ "peft": null,
219
+ "job": {
220
+ "target": null,
221
+ "image": "huggingface/lerobot-gpu:latest",
222
+ "timeout": "2d",
223
+ "detach": false,
224
+ "tags": []
225
+ },
226
+ "save_checkpoint_to_hub": false,
227
+ "sample_weighting": null,
228
+ "rename_map": {},
229
+ "checkpoint_path": "outputs/pickblock_bspline_act_aug/checkpoints/last"
230
+ }
config.json ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "type": "bspline_act",
3
+ "n_obs_steps": 1,
4
+ "input_features": {
5
+ "observation.state": {
6
+ "type": "STATE",
7
+ "shape": [
8
+ 6
9
+ ]
10
+ },
11
+ "observation.images.ee": {
12
+ "type": "VISUAL",
13
+ "shape": [
14
+ 3,
15
+ 360,
16
+ 640
17
+ ]
18
+ },
19
+ "observation.images.front": {
20
+ "type": "VISUAL",
21
+ "shape": [
22
+ 3,
23
+ 360,
24
+ 640
25
+ ]
26
+ }
27
+ },
28
+ "output_features": {
29
+ "action": {
30
+ "type": "ACTION",
31
+ "shape": [
32
+ 112
33
+ ]
34
+ }
35
+ },
36
+ "device": "cuda",
37
+ "use_amp": false,
38
+ "use_peft": false,
39
+ "push_to_hub": false,
40
+ "repo_id": null,
41
+ "private": null,
42
+ "tags": null,
43
+ "license": null,
44
+ "pretrained_path": "outputs/pickblock_bspline_act_aug/checkpoints/last/pretrained_model",
45
+ "pretrained_revision": null,
46
+ "chunk_size": 16,
47
+ "n_action_steps": 16,
48
+ "normalization_mapping": {
49
+ "VISUAL": "MEAN_STD",
50
+ "STATE": "MEAN_STD",
51
+ "ACTION": "MEAN_STD"
52
+ },
53
+ "vision_backbone": "resnet18",
54
+ "pretrained_backbone_weights": "ResNet18_Weights.IMAGENET1K_V1",
55
+ "replace_final_stride_with_dilation": 0,
56
+ "pre_norm": false,
57
+ "dim_model": 512,
58
+ "n_heads": 8,
59
+ "dim_feedforward": 3200,
60
+ "feedforward_activation": "relu",
61
+ "n_encoder_layers": 4,
62
+ "n_decoder_layers": 1,
63
+ "use_vae": true,
64
+ "latent_dim": 32,
65
+ "n_vae_encoder_layers": 4,
66
+ "temporal_ensemble_coeff": null,
67
+ "dropout": 0.1,
68
+ "kl_weight": 10.0,
69
+ "optimizer_lr": 2e-05,
70
+ "optimizer_weight_decay": 0.001,
71
+ "optimizer_lr_backbone": 1e-05,
72
+ "bspline_degree": 3,
73
+ "bspline_chunk_size": 10,
74
+ "relative_knots": false,
75
+ "speed_up": 1.0,
76
+ "n_decoded_steps": 32,
77
+ "align_segments": true,
78
+ "align_error_threshold": 0.5,
79
+ "align_max_fraction": 0.2,
80
+ "align_exclude_last_dims": 1,
81
+ "replan_margin": 1.0,
82
+ "channels_last": true
83
+ }
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4e16d5b72180ba0ecf13a77f9a81b69b3f252d9ca457941ff211c19b65859d85
3
+ size 206360820
policy_postprocessor.json ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "policy_postprocessor",
3
+ "steps": [
4
+ {
5
+ "registry_name": "device_processor",
6
+ "config": {
7
+ "device": "cpu",
8
+ "float_dtype": null
9
+ }
10
+ }
11
+ ]
12
+ }
policy_preprocessor.json ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "policy_preprocessor",
3
+ "steps": [
4
+ {
5
+ "registry_name": "rename_observations_processor",
6
+ "config": {
7
+ "rename_map": {}
8
+ }
9
+ },
10
+ {
11
+ "registry_name": "to_batch_processor",
12
+ "config": {}
13
+ },
14
+ {
15
+ "registry_name": "device_processor",
16
+ "config": {
17
+ "device": "cuda",
18
+ "float_dtype": null
19
+ }
20
+ },
21
+ {
22
+ "registry_name": "normalizer_processor",
23
+ "config": {
24
+ "eps": 1e-08,
25
+ "features": {
26
+ "observation.state": {
27
+ "type": "STATE",
28
+ "shape": [
29
+ 6
30
+ ]
31
+ },
32
+ "observation.images.ee": {
33
+ "type": "VISUAL",
34
+ "shape": [
35
+ 3,
36
+ 360,
37
+ 640
38
+ ]
39
+ },
40
+ "observation.images.front": {
41
+ "type": "VISUAL",
42
+ "shape": [
43
+ 3,
44
+ 360,
45
+ 640
46
+ ]
47
+ },
48
+ "action": {
49
+ "type": "ACTION",
50
+ "shape": [
51
+ 112
52
+ ]
53
+ }
54
+ },
55
+ "norm_map": {
56
+ "VISUAL": "MEAN_STD",
57
+ "STATE": "MEAN_STD",
58
+ "ACTION": "MEAN_STD"
59
+ }
60
+ },
61
+ "state_file": "policy_preprocessor_step_3_normalizer_processor.safetensors"
62
+ }
63
+ ]
64
+ }
policy_preprocessor_step_3_normalizer_processor.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7b1863e4f75643077d48e73b9a90b50bec2e8a27fb3cb5d60195ac41d06ef48e
3
+ size 11544
train_config.json ADDED
@@ -0,0 +1,230 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "dataset": {
3
+ "repo_id": "aryankakad/pick_block_bowl_bspline",
4
+ "root": null,
5
+ "episodes": null,
6
+ "image_transforms": {
7
+ "enable": true,
8
+ "max_num_transforms": 3,
9
+ "random_order": false,
10
+ "tfs": {
11
+ "brightness": {
12
+ "weight": 1.0,
13
+ "type": "ColorJitter",
14
+ "kwargs": {
15
+ "brightness": [
16
+ 0.8,
17
+ 1.2
18
+ ]
19
+ }
20
+ },
21
+ "contrast": {
22
+ "weight": 1.0,
23
+ "type": "ColorJitter",
24
+ "kwargs": {
25
+ "contrast": [
26
+ 0.8,
27
+ 1.2
28
+ ]
29
+ }
30
+ },
31
+ "saturation": {
32
+ "weight": 1.0,
33
+ "type": "ColorJitter",
34
+ "kwargs": {
35
+ "saturation": [
36
+ 0.5,
37
+ 1.5
38
+ ]
39
+ }
40
+ },
41
+ "hue": {
42
+ "weight": 1.0,
43
+ "type": "ColorJitter",
44
+ "kwargs": {
45
+ "hue": [
46
+ -0.05,
47
+ 0.05
48
+ ]
49
+ }
50
+ },
51
+ "sharpness": {
52
+ "weight": 1.0,
53
+ "type": "SharpnessJitter",
54
+ "kwargs": {
55
+ "sharpness": [
56
+ 0.5,
57
+ 1.5
58
+ ]
59
+ }
60
+ },
61
+ "affine": {
62
+ "weight": 1.0,
63
+ "type": "RandomAffine",
64
+ "kwargs": {
65
+ "degrees": [
66
+ -5.0,
67
+ 5.0
68
+ ],
69
+ "translate": [
70
+ 0.05,
71
+ 0.05
72
+ ]
73
+ }
74
+ }
75
+ }
76
+ },
77
+ "revision": null,
78
+ "use_imagenet_stats": true,
79
+ "video_backend": "torchcodec",
80
+ "return_uint8": false,
81
+ "depth_output_unit": "mm",
82
+ "streaming": false,
83
+ "eval_split": 0.15
84
+ },
85
+ "env": null,
86
+ "policy": {
87
+ "type": "bspline_act",
88
+ "n_obs_steps": 1,
89
+ "input_features": {
90
+ "observation.state": {
91
+ "type": "STATE",
92
+ "shape": [
93
+ 6
94
+ ]
95
+ },
96
+ "observation.images.ee": {
97
+ "type": "VISUAL",
98
+ "shape": [
99
+ 3,
100
+ 360,
101
+ 640
102
+ ]
103
+ },
104
+ "observation.images.front": {
105
+ "type": "VISUAL",
106
+ "shape": [
107
+ 3,
108
+ 360,
109
+ 640
110
+ ]
111
+ }
112
+ },
113
+ "output_features": {
114
+ "action": {
115
+ "type": "ACTION",
116
+ "shape": [
117
+ 112
118
+ ]
119
+ }
120
+ },
121
+ "device": "cuda",
122
+ "use_amp": false,
123
+ "use_peft": false,
124
+ "push_to_hub": false,
125
+ "repo_id": null,
126
+ "private": null,
127
+ "tags": null,
128
+ "license": null,
129
+ "pretrained_path": "outputs/pickblock_bspline_act_aug/checkpoints/last/pretrained_model",
130
+ "pretrained_revision": null,
131
+ "chunk_size": 16,
132
+ "n_action_steps": 16,
133
+ "normalization_mapping": {
134
+ "VISUAL": "MEAN_STD",
135
+ "STATE": "MEAN_STD",
136
+ "ACTION": "MEAN_STD"
137
+ },
138
+ "vision_backbone": "resnet18",
139
+ "pretrained_backbone_weights": "ResNet18_Weights.IMAGENET1K_V1",
140
+ "replace_final_stride_with_dilation": 0,
141
+ "pre_norm": false,
142
+ "dim_model": 512,
143
+ "n_heads": 8,
144
+ "dim_feedforward": 3200,
145
+ "feedforward_activation": "relu",
146
+ "n_encoder_layers": 4,
147
+ "n_decoder_layers": 1,
148
+ "use_vae": true,
149
+ "latent_dim": 32,
150
+ "n_vae_encoder_layers": 4,
151
+ "temporal_ensemble_coeff": null,
152
+ "dropout": 0.1,
153
+ "kl_weight": 10.0,
154
+ "optimizer_lr": 2e-05,
155
+ "optimizer_weight_decay": 0.001,
156
+ "optimizer_lr_backbone": 1e-05,
157
+ "bspline_degree": 3,
158
+ "bspline_chunk_size": 10,
159
+ "relative_knots": false,
160
+ "speed_up": 1.0,
161
+ "n_decoded_steps": 32,
162
+ "align_segments": true,
163
+ "align_error_threshold": 0.5,
164
+ "align_max_fraction": 0.2,
165
+ "align_exclude_last_dims": 1,
166
+ "replan_margin": 1.0,
167
+ "channels_last": true
168
+ },
169
+ "reward_model": null,
170
+ "output_dir": "outputs/pickblock_bspline_act_aug",
171
+ "job_name": "bspline_act",
172
+ "resume": true,
173
+ "seed": 1000,
174
+ "cudnn_deterministic": false,
175
+ "num_workers": 8,
176
+ "batch_size": 32,
177
+ "prefetch_factor": 4,
178
+ "persistent_workers": true,
179
+ "steps": 40000,
180
+ "env_eval_freq": 20000,
181
+ "log_freq": 250,
182
+ "eval_steps": 1000,
183
+ "max_eval_samples": 512,
184
+ "tolerance_s": 0.0001,
185
+ "save_checkpoint": true,
186
+ "save_freq": 5000,
187
+ "use_policy_training_preset": true,
188
+ "optimizer": {
189
+ "type": "adamw",
190
+ "lr": 2e-05,
191
+ "weight_decay": 0.001,
192
+ "grad_clip_norm": 10.0,
193
+ "betas": [
194
+ 0.9,
195
+ 0.999
196
+ ],
197
+ "eps": 1e-08
198
+ },
199
+ "scheduler": null,
200
+ "eval": {
201
+ "n_episodes": 50,
202
+ "batch_size": 22,
203
+ "use_async_envs": true,
204
+ "recording": false,
205
+ "recording_repo_id": null,
206
+ "recording_private": false
207
+ },
208
+ "wandb": {
209
+ "enable": false,
210
+ "disable_artifact": false,
211
+ "project": "lerobot",
212
+ "entity": null,
213
+ "notes": null,
214
+ "run_id": null,
215
+ "mode": null,
216
+ "add_tags": true
217
+ },
218
+ "peft": null,
219
+ "job": {
220
+ "target": null,
221
+ "image": "huggingface/lerobot-gpu:latest",
222
+ "timeout": "2d",
223
+ "detach": false,
224
+ "tags": []
225
+ },
226
+ "save_checkpoint_to_hub": false,
227
+ "sample_weighting": null,
228
+ "rename_map": {},
229
+ "checkpoint_path": "outputs/pickblock_bspline_act_aug/checkpoints/last"
230
+ }