learner1119 commited on
Commit
1201550
·
verified ·
1 Parent(s): 476070d

Add LeRobot policy weights, processor configs and model card

Browse files
README.md ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ library_name: lerobot
3
+ tags:
4
+ - robotics
5
+ - lerobot
6
+ - act
7
+ - behavioral-cloning
8
+ pipeline_tag: robotics
9
+ ---
10
+
11
+ # posco_act_square_260822_left_c50
12
+
13
+ ACT (action-chunking transformer) policy trained with [LeRobot](https://github.com/huggingface/lerobot) 0.4.3
14
+ on the POSCO left-arm pick-and-place dataset.
15
+
16
+ ## Configuration
17
+
18
+ | | |
19
+ |---|---|
20
+ | architecture | `act` |
21
+ | `chunk_size` / `n_action_steps` | 50 / 50 |
22
+ | observation | `observation.images.agentview` (1 camera, 480x640) + `observation.state` |
23
+ | action / state dim | **8** (left arm `arm_l_joint1..7` + `gripper_l_joint1`) |
24
+ | control rate | 20 Hz -> a chunk of 50 spans 2.5 s |
25
+ | training | 50,000 steps, batch 64, lr 1e-05 |
26
+ | data | `square_260822_left`, 150 episodes / 73,529 frames |
27
+
28
+ Right-arm dimensions were dropped before training: in these recordings they are
29
+ effectively constant (action std down to 0.0), so under normalization they contribute
30
+ unit-variance sensor noise the policy cannot learn.
31
+
32
+ ## Usage
33
+
34
+ ```python
35
+ from lerobot.policies.act.modeling_act import ACTPolicy
36
+ from lerobot.policies.factory import make_pre_post_processors
37
+
38
+ repo = "learner1119/posco_act_square_260822_left_c50"
39
+ policy = ACTPolicy.from_pretrained(repo).eval()
40
+ pre, post = make_pre_post_processors(policy.config, pretrained_path=repo)
41
+
42
+ processed = pre(observation) # normalizes + tokenizes
43
+ chunk = policy.predict_action_chunk(processed) # (B, 50, 8), normalized
44
+ actions = post(chunk[:, 0]) # -> real action space
45
+ ```
46
+
47
+ > On lerobot >= 0.4 normalization lives in these processor pipelines, **not** inside the
48
+ > policy. Calling `predict_action_chunk` on raw observations silently returns wrong
49
+ > actions -- always go through `pre` / `post`.
50
+
51
+ ## Caveat
52
+
53
+ Trained on all available episodes with no held-out split, so it has no honest
54
+ offline validation number attached. Treat reported training loss as fit quality,
55
+ not generalization.
config.json ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "type": "act",
3
+ "n_obs_steps": 1,
4
+ "input_features": {
5
+ "observation.images.agentview": {
6
+ "type": "VISUAL",
7
+ "shape": [
8
+ 3,
9
+ 480,
10
+ 640
11
+ ]
12
+ },
13
+ "observation.state": {
14
+ "type": "STATE",
15
+ "shape": [
16
+ 8
17
+ ]
18
+ }
19
+ },
20
+ "output_features": {
21
+ "action": {
22
+ "type": "ACTION",
23
+ "shape": [
24
+ 8
25
+ ]
26
+ }
27
+ },
28
+ "device": "cuda",
29
+ "use_amp": false,
30
+ "use_peft": false,
31
+ "push_to_hub": false,
32
+ "repo_id": null,
33
+ "private": null,
34
+ "tags": null,
35
+ "license": null,
36
+ "pretrained_path": null,
37
+ "chunk_size": 50,
38
+ "n_action_steps": 50,
39
+ "normalization_mapping": {
40
+ "VISUAL": "MEAN_STD",
41
+ "STATE": "MEAN_STD",
42
+ "ACTION": "MEAN_STD"
43
+ },
44
+ "vision_backbone": "resnet18",
45
+ "pretrained_backbone_weights": "ResNet18_Weights.IMAGENET1K_V1",
46
+ "replace_final_stride_with_dilation": false,
47
+ "pre_norm": false,
48
+ "dim_model": 512,
49
+ "n_heads": 8,
50
+ "dim_feedforward": 3200,
51
+ "feedforward_activation": "relu",
52
+ "n_encoder_layers": 4,
53
+ "n_decoder_layers": 1,
54
+ "use_vae": true,
55
+ "latent_dim": 32,
56
+ "n_vae_encoder_layers": 4,
57
+ "temporal_ensemble_coeff": null,
58
+ "dropout": 0.1,
59
+ "kl_weight": 10.0,
60
+ "optimizer_lr": 1e-05,
61
+ "optimizer_weight_decay": 0.0001,
62
+ "optimizer_lr_backbone": 1e-05
63
+ }
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:035b7c9c23e743e72e4cd7d24f7ed259332f563f26e6fb53596592d5267dd305
3
+ size 206511320
policy_postprocessor.json ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "policy_postprocessor",
3
+ "steps": [
4
+ {
5
+ "registry_name": "unnormalizer_processor",
6
+ "config": {
7
+ "eps": 1e-08,
8
+ "features": {
9
+ "action": {
10
+ "type": "ACTION",
11
+ "shape": [
12
+ 8
13
+ ]
14
+ }
15
+ },
16
+ "norm_map": {
17
+ "VISUAL": "MEAN_STD",
18
+ "STATE": "MEAN_STD",
19
+ "ACTION": "MEAN_STD"
20
+ }
21
+ },
22
+ "state_file": "policy_postprocessor_step_0_unnormalizer_processor.safetensors"
23
+ },
24
+ {
25
+ "registry_name": "device_processor",
26
+ "config": {
27
+ "device": "cpu",
28
+ "float_dtype": null
29
+ }
30
+ }
31
+ ]
32
+ }
policy_postprocessor_step_0_unnormalizer_processor.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e62d0f2c16e3417119f67b2cdc4a53796260ef25941a14019f80d986d1db608d
3
+ size 3780
policy_preprocessor.json ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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.images.agentview": {
27
+ "type": "VISUAL",
28
+ "shape": [
29
+ 3,
30
+ 480,
31
+ 640
32
+ ]
33
+ },
34
+ "observation.state": {
35
+ "type": "STATE",
36
+ "shape": [
37
+ 8
38
+ ]
39
+ },
40
+ "action": {
41
+ "type": "ACTION",
42
+ "shape": [
43
+ 8
44
+ ]
45
+ }
46
+ },
47
+ "norm_map": {
48
+ "VISUAL": "MEAN_STD",
49
+ "STATE": "MEAN_STD",
50
+ "ACTION": "MEAN_STD"
51
+ }
52
+ },
53
+ "state_file": "policy_preprocessor_step_3_normalizer_processor.safetensors"
54
+ }
55
+ ]
56
+ }
policy_preprocessor_step_3_normalizer_processor.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e62d0f2c16e3417119f67b2cdc4a53796260ef25941a14019f80d986d1db608d
3
+ size 3780
train_config.json ADDED
@@ -0,0 +1,344 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "dataset": {
3
+ "repo_id": "local/square_260822_left",
4
+ "root": "/home/work/posco_dataset/dataset/square_260822_left",
5
+ "episodes": [
6
+ 0,
7
+ 1,
8
+ 2,
9
+ 3,
10
+ 4,
11
+ 5,
12
+ 6,
13
+ 7,
14
+ 8,
15
+ 9,
16
+ 10,
17
+ 11,
18
+ 12,
19
+ 13,
20
+ 14,
21
+ 15,
22
+ 16,
23
+ 17,
24
+ 18,
25
+ 19,
26
+ 20,
27
+ 21,
28
+ 22,
29
+ 23,
30
+ 24,
31
+ 25,
32
+ 26,
33
+ 27,
34
+ 28,
35
+ 29,
36
+ 30,
37
+ 31,
38
+ 32,
39
+ 33,
40
+ 34,
41
+ 35,
42
+ 36,
43
+ 37,
44
+ 38,
45
+ 39,
46
+ 40,
47
+ 42,
48
+ 43,
49
+ 44,
50
+ 45,
51
+ 46,
52
+ 47,
53
+ 48,
54
+ 49,
55
+ 50,
56
+ 51,
57
+ 52,
58
+ 53,
59
+ 54,
60
+ 55,
61
+ 56,
62
+ 57,
63
+ 58,
64
+ 60,
65
+ 61,
66
+ 62,
67
+ 63,
68
+ 64,
69
+ 65,
70
+ 66,
71
+ 67,
72
+ 68,
73
+ 69,
74
+ 70,
75
+ 71,
76
+ 72,
77
+ 73,
78
+ 74,
79
+ 75,
80
+ 76,
81
+ 77,
82
+ 78,
83
+ 79,
84
+ 80,
85
+ 81,
86
+ 82,
87
+ 83,
88
+ 84,
89
+ 85,
90
+ 86,
91
+ 87,
92
+ 88,
93
+ 89,
94
+ 90,
95
+ 91,
96
+ 92,
97
+ 93,
98
+ 94,
99
+ 95,
100
+ 96,
101
+ 97,
102
+ 98,
103
+ 99,
104
+ 100,
105
+ 101,
106
+ 102,
107
+ 103,
108
+ 104,
109
+ 105,
110
+ 106,
111
+ 107,
112
+ 108,
113
+ 109,
114
+ 110,
115
+ 111,
116
+ 112,
117
+ 113,
118
+ 114,
119
+ 115,
120
+ 116,
121
+ 117,
122
+ 118,
123
+ 119,
124
+ 120,
125
+ 121,
126
+ 122,
127
+ 123,
128
+ 124,
129
+ 125,
130
+ 126,
131
+ 127,
132
+ 128,
133
+ 129,
134
+ 130,
135
+ 131,
136
+ 132,
137
+ 133,
138
+ 134,
139
+ 135,
140
+ 136,
141
+ 137,
142
+ 138,
143
+ 139,
144
+ 140,
145
+ 141,
146
+ 142,
147
+ 143,
148
+ 144,
149
+ 145,
150
+ 146,
151
+ 147,
152
+ 148,
153
+ 149,
154
+ 150,
155
+ 151
156
+ ],
157
+ "image_transforms": {
158
+ "enable": false,
159
+ "max_num_transforms": 3,
160
+ "random_order": false,
161
+ "tfs": {
162
+ "brightness": {
163
+ "weight": 1.0,
164
+ "type": "ColorJitter",
165
+ "kwargs": {
166
+ "brightness": [
167
+ 0.8,
168
+ 1.2
169
+ ]
170
+ }
171
+ },
172
+ "contrast": {
173
+ "weight": 1.0,
174
+ "type": "ColorJitter",
175
+ "kwargs": {
176
+ "contrast": [
177
+ 0.8,
178
+ 1.2
179
+ ]
180
+ }
181
+ },
182
+ "saturation": {
183
+ "weight": 1.0,
184
+ "type": "ColorJitter",
185
+ "kwargs": {
186
+ "saturation": [
187
+ 0.5,
188
+ 1.5
189
+ ]
190
+ }
191
+ },
192
+ "hue": {
193
+ "weight": 1.0,
194
+ "type": "ColorJitter",
195
+ "kwargs": {
196
+ "hue": [
197
+ -0.05,
198
+ 0.05
199
+ ]
200
+ }
201
+ },
202
+ "sharpness": {
203
+ "weight": 1.0,
204
+ "type": "SharpnessJitter",
205
+ "kwargs": {
206
+ "sharpness": [
207
+ 0.5,
208
+ 1.5
209
+ ]
210
+ }
211
+ },
212
+ "affine": {
213
+ "weight": 1.0,
214
+ "type": "RandomAffine",
215
+ "kwargs": {
216
+ "degrees": [
217
+ -5.0,
218
+ 5.0
219
+ ],
220
+ "translate": [
221
+ 0.05,
222
+ 0.05
223
+ ]
224
+ }
225
+ }
226
+ }
227
+ },
228
+ "revision": null,
229
+ "use_imagenet_stats": true,
230
+ "video_backend": "pyav",
231
+ "streaming": false
232
+ },
233
+ "env": null,
234
+ "policy": {
235
+ "type": "act",
236
+ "n_obs_steps": 1,
237
+ "input_features": {
238
+ "observation.images.agentview": {
239
+ "type": "VISUAL",
240
+ "shape": [
241
+ 3,
242
+ 480,
243
+ 640
244
+ ]
245
+ },
246
+ "observation.state": {
247
+ "type": "STATE",
248
+ "shape": [
249
+ 8
250
+ ]
251
+ }
252
+ },
253
+ "output_features": {
254
+ "action": {
255
+ "type": "ACTION",
256
+ "shape": [
257
+ 8
258
+ ]
259
+ }
260
+ },
261
+ "device": "cuda",
262
+ "use_amp": false,
263
+ "use_peft": false,
264
+ "push_to_hub": false,
265
+ "repo_id": null,
266
+ "private": null,
267
+ "tags": null,
268
+ "license": null,
269
+ "pretrained_path": null,
270
+ "chunk_size": 50,
271
+ "n_action_steps": 50,
272
+ "normalization_mapping": {
273
+ "VISUAL": "MEAN_STD",
274
+ "STATE": "MEAN_STD",
275
+ "ACTION": "MEAN_STD"
276
+ },
277
+ "vision_backbone": "resnet18",
278
+ "pretrained_backbone_weights": "ResNet18_Weights.IMAGENET1K_V1",
279
+ "replace_final_stride_with_dilation": false,
280
+ "pre_norm": false,
281
+ "dim_model": 512,
282
+ "n_heads": 8,
283
+ "dim_feedforward": 3200,
284
+ "feedforward_activation": "relu",
285
+ "n_encoder_layers": 4,
286
+ "n_decoder_layers": 1,
287
+ "use_vae": true,
288
+ "latent_dim": 32,
289
+ "n_vae_encoder_layers": 4,
290
+ "temporal_ensemble_coeff": null,
291
+ "dropout": 0.1,
292
+ "kl_weight": 10.0,
293
+ "optimizer_lr": 1e-05,
294
+ "optimizer_weight_decay": 0.0001,
295
+ "optimizer_lr_backbone": 1e-05
296
+ },
297
+ "output_dir": "/home/work/ku_doyoung/ckpt/square/act_square_c50_s1000",
298
+ "job_name": "act_square_c50_s1000",
299
+ "resume": false,
300
+ "seed": 1000,
301
+ "num_workers": 8,
302
+ "batch_size": 64,
303
+ "steps": 50000,
304
+ "eval_freq": -1,
305
+ "log_freq": 100,
306
+ "tolerance_s": 0.0001,
307
+ "save_checkpoint": true,
308
+ "save_freq": 10000,
309
+ "use_policy_training_preset": true,
310
+ "optimizer": {
311
+ "type": "adamw",
312
+ "lr": 1e-05,
313
+ "weight_decay": 0.0001,
314
+ "grad_clip_norm": 10.0,
315
+ "betas": [
316
+ 0.9,
317
+ 0.999
318
+ ],
319
+ "eps": 1e-08
320
+ },
321
+ "scheduler": null,
322
+ "eval": {
323
+ "n_episodes": 50,
324
+ "batch_size": 50,
325
+ "use_async_envs": false
326
+ },
327
+ "wandb": {
328
+ "enable": false,
329
+ "disable_artifact": false,
330
+ "project": "lerobot",
331
+ "entity": null,
332
+ "notes": null,
333
+ "run_id": null,
334
+ "mode": null
335
+ },
336
+ "peft": null,
337
+ "use_rabc": false,
338
+ "rabc_progress_path": null,
339
+ "rabc_kappa": 0.01,
340
+ "rabc_epsilon": 1e-06,
341
+ "rabc_head_mode": "sparse",
342
+ "rename_map": {},
343
+ "checkpoint_path": null
344
+ }