anhtld commited on
Commit
2f2b801
·
verified ·
1 Parent(s): 8146a53

auto-sync 2026-07-02T20:07:13Z workspace (part 8)

Browse files
workspace/results/h16_transport_field_reground_fieldonly_k6clean_dropnoopwg_b12_v1_besttransport_margin0p00_k6_srcscore_task_pick001_stack005_policyanchor_advw4p0_summary.json ADDED
@@ -0,0 +1,487 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "run_root": "/scratch/knguy52/dovla/experiments/dovla_h16_policy_ckpt_runs",
3
+ "objective": "transport_field_reground_fieldonly_k6clean_dropnoopwg_b12_v1",
4
+ "out_name": "policy_rollout_fieldonly_k6clean_dropnoopwg_b12_v1_besttransport_margin0p00_k6_srcscore_task_pick001_stack005_policyanchor_advw4p0.json",
5
+ "num_completed": 3,
6
+ "baseline_h4_policy_success": 0.2967,
7
+ "baseline_h16_rank_checkpoint_success": 0.29739130434782607,
8
+ "mean_success": 0.3715942028985507,
9
+ "std_success": 0.00957838356049757,
10
+ "mean_progress": 0.5871968711354795,
11
+ "mean_action_mse_to_best": 0.5142619989151,
12
+ "gain_vs_h4": 0.0748942028985507,
13
+ "gain_vs_h16_rank_checkpoint": 0.07420289855072465,
14
+ "rows": [
15
+ {
16
+ "seed": 0,
17
+ "path": "/scratch/knguy52/dovla/experiments/dovla_h16_policy_ckpt_runs/transport_field_reground_fieldonly_k6clean_dropnoopwg_b12_v1/seed_0/policy_rollout_fieldonly_k6clean_dropnoopwg_b12_v1_besttransport_margin0p00_k6_srcscore_task_pick001_stack005_policyanchor_advw4p0.json",
18
+ "num_groups": 575,
19
+ "selection_mode": "retrieval_residual",
20
+ "num_candidates": 48,
21
+ "candidate_sigma": 0.0,
22
+ "proposal_types": [],
23
+ "proposal_lattice_types": [],
24
+ "selection_margin": 0.0,
25
+ "prepend_policy_candidate": false,
26
+ "field_optim_steps": 0,
27
+ "field_optim_step_size": 0.0,
28
+ "field_optim_trust_radius": 0.0,
29
+ "field_optim_l2_penalty": 0.0,
30
+ "retrieval_neighbors": 6,
31
+ "retrieval_metric": "raw",
32
+ "retrieval_type_min_success": 0.0,
33
+ "retrieval_type_success_bonus_scale": 0.0,
34
+ "retrieval_residual_consensus_penalty_scale": 0.0,
35
+ "retrieval_residual_min_source_progress": 0.0,
36
+ "retrieval_residual_min_source_advantage": -1000000000.0,
37
+ "retrieval_residual_source_progress_bonus_scale": 0.0,
38
+ "retrieval_residual_source_score_bonus_scale": 0.0,
39
+ "retrieval_residual_source_advantage_bonus_scale": 0.0,
40
+ "retrieval_residual_source_advantage_weight_scale": 4.0,
41
+ "retrieval_residual_composite_l2_penalty_scale": 0.0,
42
+ "retrieval_residual_scale": 1.0,
43
+ "retrieval_residual_scales": [
44
+ 0.35,
45
+ 0.4,
46
+ 0.45
47
+ ],
48
+ "retrieval_residual_anchor": "policy",
49
+ "retrieval_residual_direction": "candidate_minus_anchor",
50
+ "retrieval_residual_reduce": "compose_mean_by_type",
51
+ "retrieval_residual_challenger_types": [],
52
+ "retrieval_residual_challenger_scales": [],
53
+ "retrieval_residual_challenger_margin": 0.0,
54
+ "retrieval_residual_challenger_type_margins": {},
55
+ "retrieval_residual_challenger_tasks": [],
56
+ "retrieval_residual_challenger_type_tasks": {},
57
+ "lattice_exclude_types": [
58
+ "residual_random_negative",
59
+ "residual_wrong_direction",
60
+ "residual_near_miss+residual_no_op",
61
+ "residual_no_op+residual_wrong_gripper"
62
+ ],
63
+ "lattice_exclude_type_tasks": {},
64
+ "candidate_type_bonuses": {},
65
+ "candidate_type_bonuses_by_task": {},
66
+ "residual_scale_bonuses_by_task": {},
67
+ "candidate_type_bonus_components": false,
68
+ "candidate_oracle_rollouts": 0,
69
+ "candidate_oracle_unique_tolerance": 1e-06,
70
+ "candidate_oracle_success_rate": null,
71
+ "candidate_oracle_progress": null,
72
+ "candidate_oracle_score": null,
73
+ "candidate_oracle_regret": null,
74
+ "candidate_oracle_score_gain_over_selected": null,
75
+ "candidate_oracle_unique_count": null,
76
+ "candidate_oracle_improvement_rate": null,
77
+ "candidate_oracle_selected_branch_success_rate": null,
78
+ "candidate_oracle_selected_branch_progress": null,
79
+ "candidate_oracle_type_counts": {},
80
+ "candidate_oracle_best_branch_rank": null,
81
+ "candidate_oracle_best_branch_rank_counts": {},
82
+ "candidate_oracle_branch_success_rates": [],
83
+ "candidate_oracle_branch_progress": [],
84
+ "candidate_oracle_branch_score_gains_over_selected": [],
85
+ "selected_residual_scale_counts": {
86
+ "0.35": 355,
87
+ "0.45": 148,
88
+ "0.4": 72
89
+ },
90
+ "policy_rollout_success_rate": 0.3652173913043478,
91
+ "policy_rollout_progress": 0.576676478124632,
92
+ "oracle_success_rate": 0.8573913043478261,
93
+ "action_mse_to_best": 0.4974852632974153,
94
+ "best_policy_val": {
95
+ "bc_loss": 0.3445456624031067,
96
+ "field_effect_loss": 0.009637858977334367,
97
+ "field_potential_loss": 0.28480341533819836,
98
+ "field_preference_loss": 0.5244891477955712,
99
+ "lattice_edges": 3833.3333333333335,
100
+ "progress_mae": 0.19576937291357252,
101
+ "proposal_loss": 0.0,
102
+ "rank_acc": 0.8192069795396593,
103
+ "rank_loss": 0.524484740363227,
104
+ "regret_mae": 0.42191632754272884,
105
+ "success_accuracy": 0.8693191342883639,
106
+ "total_loss": 0.261704473859734,
107
+ "transport_field_candidates": 0.0,
108
+ "transport_field_edges": 0.0,
109
+ "transport_field_loss": 0.0,
110
+ "transport_field_potential_loss": 0.0,
111
+ "transport_field_preference_loss": 0.0,
112
+ "transport_field_rank_acc": 0.0
113
+ },
114
+ "per_task": {
115
+ "LiftPegUpright-v1": {
116
+ "action_mse_to_best": 0.345563288864478,
117
+ "expert_success_rate": 0.8865979381443299,
118
+ "num_groups": 97,
119
+ "oracle_success_rate": 0.9278350515463918,
120
+ "policy_expert_regret": 1.111376195838771,
121
+ "policy_oracle_regret": 1.1377916735472138,
122
+ "policy_rollout_progress": 0.5590392544711988,
123
+ "policy_rollout_success_rate": 0.20618556701030927,
124
+ "restore_max_error": 2.384185791015625e-07
125
+ },
126
+ "PickCube-v1": {
127
+ "action_mse_to_best": 0.456300992733584,
128
+ "expert_success_rate": 0.9375,
129
+ "num_groups": 208,
130
+ "oracle_success_rate": 0.9471153846153846,
131
+ "policy_expert_regret": 0.9513086464542609,
132
+ "policy_oracle_regret": 0.9580861745545497,
133
+ "policy_rollout_progress": 0.6201092629478528,
134
+ "policy_rollout_success_rate": 0.3605769230769231,
135
+ "restore_max_error": 2.384185791015625e-07
136
+ },
137
+ "PullCube-v1": {
138
+ "action_mse_to_best": 0.6299688305173602,
139
+ "expert_success_rate": 0.19480519480519481,
140
+ "num_groups": 77,
141
+ "oracle_success_rate": 0.36363636363636365,
142
+ "policy_expert_regret": 0.2383645014247495,
143
+ "policy_oracle_regret": 0.40916589678159815,
144
+ "policy_rollout_progress": 0.34126044169597003,
145
+ "policy_rollout_success_rate": 0.23376623376623376,
146
+ "restore_max_error": 2.3096799850463867e-07
147
+ },
148
+ "PushCube-v1": {
149
+ "action_mse_to_best": 0.49441769481339354,
150
+ "expert_success_rate": 0.8617021276595744,
151
+ "num_groups": 94,
152
+ "oracle_success_rate": 0.9893617021276596,
153
+ "policy_expert_regret": 0.41787898318564637,
154
+ "policy_oracle_regret": 0.47644254121374574,
155
+ "policy_rollout_progress": 0.7592489960345816,
156
+ "policy_rollout_success_rate": 0.7446808510638298,
157
+ "restore_max_error": 2.384185791015625e-07
158
+ },
159
+ "StackCube-v1": {
160
+ "action_mse_to_best": 0.6327365416694771,
161
+ "expert_success_rate": 0.6767676767676768,
162
+ "num_groups": 99,
163
+ "oracle_success_rate": 0.8585858585858586,
164
+ "policy_expert_regret": 0.9040298148839161,
165
+ "policy_oracle_regret": 1.051492454578178,
166
+ "policy_rollout_progress": 0.5124543525955894,
167
+ "policy_rollout_success_rate": 0.2727272727272727,
168
+ "restore_max_error": 2.384185791015625e-07
169
+ }
170
+ }
171
+ },
172
+ {
173
+ "seed": 1,
174
+ "path": "/scratch/knguy52/dovla/experiments/dovla_h16_policy_ckpt_runs/transport_field_reground_fieldonly_k6clean_dropnoopwg_b12_v1/seed_1/policy_rollout_fieldonly_k6clean_dropnoopwg_b12_v1_besttransport_margin0p00_k6_srcscore_task_pick001_stack005_policyanchor_advw4p0.json",
175
+ "num_groups": 575,
176
+ "selection_mode": "retrieval_residual",
177
+ "num_candidates": 48,
178
+ "candidate_sigma": 0.0,
179
+ "proposal_types": [],
180
+ "proposal_lattice_types": [],
181
+ "selection_margin": 0.0,
182
+ "prepend_policy_candidate": false,
183
+ "field_optim_steps": 0,
184
+ "field_optim_step_size": 0.0,
185
+ "field_optim_trust_radius": 0.0,
186
+ "field_optim_l2_penalty": 0.0,
187
+ "retrieval_neighbors": 6,
188
+ "retrieval_metric": "raw",
189
+ "retrieval_type_min_success": 0.0,
190
+ "retrieval_type_success_bonus_scale": 0.0,
191
+ "retrieval_residual_consensus_penalty_scale": 0.0,
192
+ "retrieval_residual_min_source_progress": 0.0,
193
+ "retrieval_residual_min_source_advantage": -1000000000.0,
194
+ "retrieval_residual_source_progress_bonus_scale": 0.0,
195
+ "retrieval_residual_source_score_bonus_scale": 0.0,
196
+ "retrieval_residual_source_advantage_bonus_scale": 0.0,
197
+ "retrieval_residual_source_advantage_weight_scale": 4.0,
198
+ "retrieval_residual_composite_l2_penalty_scale": 0.0,
199
+ "retrieval_residual_scale": 1.0,
200
+ "retrieval_residual_scales": [
201
+ 0.35,
202
+ 0.4,
203
+ 0.45
204
+ ],
205
+ "retrieval_residual_anchor": "policy",
206
+ "retrieval_residual_direction": "candidate_minus_anchor",
207
+ "retrieval_residual_reduce": "compose_mean_by_type",
208
+ "retrieval_residual_challenger_types": [],
209
+ "retrieval_residual_challenger_scales": [],
210
+ "retrieval_residual_challenger_margin": 0.0,
211
+ "retrieval_residual_challenger_type_margins": {},
212
+ "retrieval_residual_challenger_tasks": [],
213
+ "retrieval_residual_challenger_type_tasks": {},
214
+ "lattice_exclude_types": [
215
+ "residual_random_negative",
216
+ "residual_wrong_direction",
217
+ "residual_near_miss+residual_no_op",
218
+ "residual_no_op+residual_wrong_gripper"
219
+ ],
220
+ "lattice_exclude_type_tasks": {},
221
+ "candidate_type_bonuses": {},
222
+ "candidate_type_bonuses_by_task": {},
223
+ "residual_scale_bonuses_by_task": {},
224
+ "candidate_type_bonus_components": false,
225
+ "candidate_oracle_rollouts": 0,
226
+ "candidate_oracle_unique_tolerance": 1e-06,
227
+ "candidate_oracle_success_rate": null,
228
+ "candidate_oracle_progress": null,
229
+ "candidate_oracle_score": null,
230
+ "candidate_oracle_regret": null,
231
+ "candidate_oracle_score_gain_over_selected": null,
232
+ "candidate_oracle_unique_count": null,
233
+ "candidate_oracle_improvement_rate": null,
234
+ "candidate_oracle_selected_branch_success_rate": null,
235
+ "candidate_oracle_selected_branch_progress": null,
236
+ "candidate_oracle_type_counts": {},
237
+ "candidate_oracle_best_branch_rank": null,
238
+ "candidate_oracle_best_branch_rank_counts": {},
239
+ "candidate_oracle_branch_success_rates": [],
240
+ "candidate_oracle_branch_progress": [],
241
+ "candidate_oracle_branch_score_gains_over_selected": [],
242
+ "selected_residual_scale_counts": {
243
+ "0.35": 311,
244
+ "0.45": 217,
245
+ "0.4": 47
246
+ },
247
+ "policy_rollout_success_rate": 0.36695652173913046,
248
+ "policy_rollout_progress": 0.5834855123139594,
249
+ "oracle_success_rate": 0.8695652173913043,
250
+ "action_mse_to_best": 0.5146053172963793,
251
+ "best_policy_val": {
252
+ "bc_loss": 0.31955528176493114,
253
+ "field_effect_loss": 0.010269693254182736,
254
+ "field_potential_loss": 0.30970407525698346,
255
+ "field_preference_loss": 0.5266202224625481,
256
+ "lattice_edges": 3833.3333333333335,
257
+ "progress_mae": 0.20275857630703184,
258
+ "proposal_loss": 0.0,
259
+ "rank_acc": 0.8124439285861121,
260
+ "rank_loss": 0.5266130566596985,
261
+ "regret_mae": 0.40278742214043933,
262
+ "success_accuracy": 0.8677195310592651,
263
+ "total_loss": 0.2706700298521254,
264
+ "transport_field_candidates": 0.0,
265
+ "transport_field_edges": 0.0,
266
+ "transport_field_loss": 0.0,
267
+ "transport_field_potential_loss": 0.0,
268
+ "transport_field_preference_loss": 0.0,
269
+ "transport_field_rank_acc": 0.0
270
+ },
271
+ "per_task": {
272
+ "LiftPegUpright-v1": {
273
+ "action_mse_to_best": 0.4054089086336306,
274
+ "expert_success_rate": 0.8584070796460177,
275
+ "num_groups": 113,
276
+ "oracle_success_rate": 0.9380530973451328,
277
+ "policy_expert_regret": 0.9795758278496498,
278
+ "policy_oracle_regret": 1.058777857934479,
279
+ "policy_rollout_progress": 0.6344843103294879,
280
+ "policy_rollout_success_rate": 0.23893805309734514,
281
+ "restore_max_error": 2.384185791015625e-07
282
+ },
283
+ "PickCube-v1": {
284
+ "action_mse_to_best": 0.4513823625469661,
285
+ "expert_success_rate": 0.9402173913043478,
286
+ "num_groups": 184,
287
+ "oracle_success_rate": 0.9456521739130435,
288
+ "policy_expert_regret": 1.0739666091875457,
289
+ "policy_oracle_regret": 1.0739906136624757,
290
+ "policy_rollout_progress": 0.5658004574285335,
291
+ "policy_rollout_success_rate": 0.29891304347826086,
292
+ "restore_max_error": 2.384185791015625e-07
293
+ },
294
+ "PullCube-v1": {
295
+ "action_mse_to_best": 0.6756443924417621,
296
+ "expert_success_rate": 0.25,
297
+ "num_groups": 76,
298
+ "oracle_success_rate": 0.40789473684210525,
299
+ "policy_expert_regret": 0.2395849796012044,
300
+ "policy_oracle_regret": 0.41359174599576937,
301
+ "policy_rollout_progress": 0.3468795389819302,
302
+ "policy_rollout_success_rate": 0.23684210526315788,
303
+ "restore_max_error": 2.384185791015625e-07
304
+ },
305
+ "PushCube-v1": {
306
+ "action_mse_to_best": 0.43114926941222975,
307
+ "expert_success_rate": 0.8198198198198198,
308
+ "num_groups": 111,
309
+ "oracle_success_rate": 1.0,
310
+ "policy_expert_regret": 0.2952695772186056,
311
+ "policy_oracle_regret": 0.31243714435143516,
312
+ "policy_rollout_progress": 0.8497250178107271,
313
+ "policy_rollout_success_rate": 0.8378378378378378,
314
+ "restore_max_error": 2.3795291781425476e-07
315
+ },
316
+ "StackCube-v1": {
317
+ "action_mse_to_best": 0.7453401464927982,
318
+ "expert_success_rate": 0.6923076923076923,
319
+ "num_groups": 91,
320
+ "oracle_success_rate": 0.8571428571428571,
321
+ "policy_expert_regret": 1.0458070232972994,
322
+ "policy_oracle_regret": 1.2178818501613953,
323
+ "policy_rollout_progress": 0.42876743304205467,
324
+ "policy_rollout_success_rate": 0.1978021978021978,
325
+ "restore_max_error": 1.9371509552001953e-07
326
+ }
327
+ }
328
+ },
329
+ {
330
+ "seed": 2,
331
+ "path": "/scratch/knguy52/dovla/experiments/dovla_h16_policy_ckpt_runs/transport_field_reground_fieldonly_k6clean_dropnoopwg_b12_v1/seed_2/policy_rollout_fieldonly_k6clean_dropnoopwg_b12_v1_besttransport_margin0p00_k6_srcscore_task_pick001_stack005_policyanchor_advw4p0.json",
332
+ "num_groups": 575,
333
+ "selection_mode": "retrieval_residual",
334
+ "num_candidates": 48,
335
+ "candidate_sigma": 0.0,
336
+ "proposal_types": [],
337
+ "proposal_lattice_types": [],
338
+ "selection_margin": 0.0,
339
+ "prepend_policy_candidate": false,
340
+ "field_optim_steps": 0,
341
+ "field_optim_step_size": 0.0,
342
+ "field_optim_trust_radius": 0.0,
343
+ "field_optim_l2_penalty": 0.0,
344
+ "retrieval_neighbors": 6,
345
+ "retrieval_metric": "raw",
346
+ "retrieval_type_min_success": 0.0,
347
+ "retrieval_type_success_bonus_scale": 0.0,
348
+ "retrieval_residual_consensus_penalty_scale": 0.0,
349
+ "retrieval_residual_min_source_progress": 0.0,
350
+ "retrieval_residual_min_source_advantage": -1000000000.0,
351
+ "retrieval_residual_source_progress_bonus_scale": 0.0,
352
+ "retrieval_residual_source_score_bonus_scale": 0.0,
353
+ "retrieval_residual_source_advantage_bonus_scale": 0.0,
354
+ "retrieval_residual_source_advantage_weight_scale": 4.0,
355
+ "retrieval_residual_composite_l2_penalty_scale": 0.0,
356
+ "retrieval_residual_scale": 1.0,
357
+ "retrieval_residual_scales": [
358
+ 0.35,
359
+ 0.4,
360
+ 0.45
361
+ ],
362
+ "retrieval_residual_anchor": "policy",
363
+ "retrieval_residual_direction": "candidate_minus_anchor",
364
+ "retrieval_residual_reduce": "compose_mean_by_type",
365
+ "retrieval_residual_challenger_types": [],
366
+ "retrieval_residual_challenger_scales": [],
367
+ "retrieval_residual_challenger_margin": 0.0,
368
+ "retrieval_residual_challenger_type_margins": {},
369
+ "retrieval_residual_challenger_tasks": [],
370
+ "retrieval_residual_challenger_type_tasks": {},
371
+ "lattice_exclude_types": [
372
+ "residual_random_negative",
373
+ "residual_wrong_direction",
374
+ "residual_near_miss+residual_no_op",
375
+ "residual_no_op+residual_wrong_gripper"
376
+ ],
377
+ "lattice_exclude_type_tasks": {},
378
+ "candidate_type_bonuses": {},
379
+ "candidate_type_bonuses_by_task": {},
380
+ "residual_scale_bonuses_by_task": {},
381
+ "candidate_type_bonus_components": false,
382
+ "candidate_oracle_rollouts": 0,
383
+ "candidate_oracle_unique_tolerance": 1e-06,
384
+ "candidate_oracle_success_rate": null,
385
+ "candidate_oracle_progress": null,
386
+ "candidate_oracle_score": null,
387
+ "candidate_oracle_regret": null,
388
+ "candidate_oracle_score_gain_over_selected": null,
389
+ "candidate_oracle_unique_count": null,
390
+ "candidate_oracle_improvement_rate": null,
391
+ "candidate_oracle_selected_branch_success_rate": null,
392
+ "candidate_oracle_selected_branch_progress": null,
393
+ "candidate_oracle_type_counts": {},
394
+ "candidate_oracle_best_branch_rank": null,
395
+ "candidate_oracle_best_branch_rank_counts": {},
396
+ "candidate_oracle_branch_success_rates": [],
397
+ "candidate_oracle_branch_progress": [],
398
+ "candidate_oracle_branch_score_gains_over_selected": [],
399
+ "selected_residual_scale_counts": {
400
+ "0.35": 344,
401
+ "0.45": 161,
402
+ "0.4": 70
403
+ },
404
+ "policy_rollout_success_rate": 0.3826086956521739,
405
+ "policy_rollout_progress": 0.601428622967847,
406
+ "oracle_success_rate": 0.8765217391304347,
407
+ "action_mse_to_best": 0.5306954161515054,
408
+ "best_policy_val": {
409
+ "bc_loss": 0.2974168997671869,
410
+ "field_effect_loss": 0.009809228720971279,
411
+ "field_potential_loss": 0.29470594475666684,
412
+ "field_preference_loss": 0.5080636441707611,
413
+ "lattice_edges": 3833.3333333333335,
414
+ "progress_mae": 0.1944621221886741,
415
+ "proposal_loss": 0.0,
416
+ "rank_acc": 0.8252745270729065,
417
+ "rank_loss": 0.5080037944846683,
418
+ "regret_mae": 0.3989163488149643,
419
+ "success_accuracy": 0.870691223276986,
420
+ "total_loss": 0.2595750474267536,
421
+ "transport_field_candidates": 0.0,
422
+ "transport_field_edges": 0.0,
423
+ "transport_field_loss": 0.0,
424
+ "transport_field_potential_loss": 0.0,
425
+ "transport_field_preference_loss": 0.0,
426
+ "transport_field_rank_acc": 0.0
427
+ },
428
+ "per_task": {
429
+ "LiftPegUpright-v1": {
430
+ "action_mse_to_best": 0.44579967874839593,
431
+ "expert_success_rate": 0.8229166666666666,
432
+ "num_groups": 96,
433
+ "oracle_success_rate": 0.9270833333333334,
434
+ "policy_expert_regret": 0.8196508556914827,
435
+ "policy_oracle_regret": 0.9392079638006786,
436
+ "policy_rollout_progress": 0.6506505594588816,
437
+ "policy_rollout_success_rate": 0.34375,
438
+ "restore_max_error": 1.955777406692505e-07
439
+ },
440
+ "PickCube-v1": {
441
+ "action_mse_to_best": 0.4667625424894269,
442
+ "expert_success_rate": 0.9444444444444444,
443
+ "num_groups": 198,
444
+ "oracle_success_rate": 0.9595959595959596,
445
+ "policy_expert_regret": 1.0138591957852394,
446
+ "policy_oracle_regret": 1.020942646313948,
447
+ "policy_rollout_progress": 0.6228315381502564,
448
+ "policy_rollout_success_rate": 0.3181818181818182,
449
+ "restore_max_error": 2.384185791015625e-07
450
+ },
451
+ "PullCube-v1": {
452
+ "action_mse_to_best": 0.6834456741809845,
453
+ "expert_success_rate": 0.24444444444444444,
454
+ "num_groups": 90,
455
+ "oracle_success_rate": 0.4666666666666667,
456
+ "policy_expert_regret": 0.3312447832793825,
457
+ "policy_oracle_regret": 0.4773602064595454,
458
+ "policy_rollout_progress": 0.35248699988135035,
459
+ "policy_rollout_success_rate": 0.24444444444444444,
460
+ "restore_max_error": 2.384185791015625e-07
461
+ },
462
+ "PushCube-v1": {
463
+ "action_mse_to_best": 0.512414920669381,
464
+ "expert_success_rate": 0.8514851485148515,
465
+ "num_groups": 101,
466
+ "oracle_success_rate": 1.0,
467
+ "policy_expert_regret": 0.26510606558606176,
468
+ "policy_oracle_regret": 0.2836854187863888,
469
+ "policy_rollout_progress": 0.8648294326987597,
470
+ "policy_rollout_success_rate": 0.8514851485148515,
471
+ "restore_max_error": 2.384185791015625e-07
472
+ },
473
+ "StackCube-v1": {
474
+ "action_mse_to_best": 0.6296677116718558,
475
+ "expert_success_rate": 0.7666666666666667,
476
+ "num_groups": 90,
477
+ "oracle_success_rate": 0.9111111111111111,
478
+ "policy_expert_regret": 1.117056666314602,
479
+ "policy_oracle_regret": 1.2662078713377316,
480
+ "policy_rollout_progress": 0.4551861916979154,
481
+ "policy_rollout_success_rate": 0.17777777777777778,
482
+ "restore_max_error": 2.2351741790771484e-07
483
+ }
484
+ }
485
+ }
486
+ ]
487
+ }
workspace/results/h16_transport_field_reground_fieldonly_k6clean_dropnoopwg_b12_v1_besttransport_margin0p00_k6_srcscore_task_pick001_stack005_policyanchor_advw4p0_summary.md ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # h=16 Best-Policy Checkpoint Rollout
2
+
3
+ Run root: `/scratch/knguy52/dovla/experiments/dovla_h16_policy_ckpt_runs`
4
+ Objective: `transport_field_reground_fieldonly_k6clean_dropnoopwg_b12_v1`
5
+ Result file: `policy_rollout_fieldonly_k6clean_dropnoopwg_b12_v1_besttransport_margin0p00_k6_srcscore_task_pick001_stack005_policyanchor_advw4p0.json`
6
+ Completed seeds: 3
7
+ Baseline h=4 policy success: 29.67%
8
+ Baseline h=16 rank-checkpoint success: 29.74%
9
+
10
+ Mean success: 37.16% +/- 0.96%
11
+ Gain vs h=16 rank checkpoint: +7.42%
12
+ Mean progress: 58.72%
13
+ Mean action MSE to best: 0.514
14
+
15
+ | seed | mode | k | policy cand | retrieval K | retrieval metric | residual anchor | residual direction | residual reduce | min type success | type success bonus | consensus penalty | min source progress | source progress bonus | source score bonus | source adv bonus | source adv weight | residual scale | residual scales | margin | sigma | opt steps | trust | success | progress | oracle | candidate oracle | oracle gain | action MSE |
16
+ |---:|---|---:|---|---:|---|---|---|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|
17
+ | 0 | retrieval_residual | 48 | no | 6 | raw | policy | candidate_minus_anchor | compose_mean_by_type | 0.00 | 0.000 | 0.000 | 0.00 | 0.000 | 0.000 | 0.000 | 4.000 | 1.00 | 0.35,0.40,0.45 | 0.000 | 0.00 | 0 | 0.00 | 36.52% | 57.67% | 85.74% | n/a | n/a | 0.497 |
18
+ | 1 | retrieval_residual | 48 | no | 6 | raw | policy | candidate_minus_anchor | compose_mean_by_type | 0.00 | 0.000 | 0.000 | 0.00 | 0.000 | 0.000 | 0.000 | 4.000 | 1.00 | 0.35,0.40,0.45 | 0.000 | 0.00 | 0 | 0.00 | 36.70% | 58.35% | 86.96% | n/a | n/a | 0.515 |
19
+ | 2 | retrieval_residual | 48 | no | 6 | raw | policy | candidate_minus_anchor | compose_mean_by_type | 0.00 | 0.000 | 0.000 | 0.00 | 0.000 | 0.000 | 0.000 | 4.000 | 1.00 | 0.35,0.40,0.45 | 0.000 | 0.00 | 0 | 0.00 | 38.26% | 60.14% | 87.65% | n/a | n/a | 0.531 |
workspace/results/paper_analysis.json CHANGED
@@ -23,7 +23,1795 @@
23
  "selected_success_for_65pct_gap_closure": 0.47449275362318843,
24
  "selected_success_for_75pct_gap_closure": 0.5017391304347827
25
  },
26
- "generated_utc": "2026-07-02T19:30:26+00:00",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  "mechanism_gap": {
28
  "best_clean_vs_direct_same_ckpt": 0.1060869565217391,
29
  "best_clean_vs_h16": 0.09159420289855075,
 
23
  "selected_success_for_65pct_gap_closure": 0.47449275362318843,
24
  "selected_success_for_75pct_gap_closure": 0.5017391304347827
25
  },
26
+ "generated_utc": "2026-07-02T20:35:07+00:00",
27
+ "generator_v2_cvae_support_proxy": {
28
+ "config": {
29
+ "batch_size": 128,
30
+ "beta": 0.02,
31
+ "diversity_temperature": 0.5,
32
+ "epochs": 300,
33
+ "hidden_dim": 256,
34
+ "latent_dim": 24,
35
+ "learning_rate": 0.001,
36
+ "obs_dim": 96,
37
+ "seed": 0,
38
+ "text_dim": 64,
39
+ "val_fraction": 0.2
40
+ },
41
+ "label_counts": {
42
+ "negative": 35225,
43
+ "neutral": 6310,
44
+ "positive": 1560
45
+ },
46
+ "metric_scope": "offline_support_proxy",
47
+ "missing": false,
48
+ "note": "CVAE proposals are sampled from a train-only positive tangent model and evaluated against hidden heldout same-state positives.",
49
+ "num_examples": 43095,
50
+ "num_groups": 2873,
51
+ "num_train_examples": 34275,
52
+ "num_train_positive": 1198,
53
+ "num_val_examples": 8820,
54
+ "num_val_groups_with_positive": 93,
55
+ "overall": {
56
+ "mean_positive_min_rms_l2_at_1": 0.7824125163314778,
57
+ "mean_positive_min_rms_l2_at_16": 0.641030304113575,
58
+ "mean_positive_min_rms_l2_at_2": 0.7445953670123056,
59
+ "mean_positive_min_rms_l2_at_4": 0.6909632654522372,
60
+ "mean_positive_min_rms_l2_at_8": 0.6622495677030861,
61
+ "median_positive_min_rms_l2_at_1": 0.7363222502525835,
62
+ "median_positive_min_rms_l2_at_16": 0.5744927349342357,
63
+ "median_positive_min_rms_l2_at_2": 0.6538240152728931,
64
+ "median_positive_min_rms_l2_at_4": 0.6001167430739236,
65
+ "median_positive_min_rms_l2_at_8": 0.5816935925556014,
66
+ "negative_near_at_16_thr_0p05": 0.0,
67
+ "negative_near_at_16_thr_0p1": 0.0,
68
+ "negative_near_at_16_thr_0p2": 0.0,
69
+ "negative_near_at_16_thr_0p4": 0.24,
70
+ "negative_near_at_1_thr_0p05": 0.0,
71
+ "negative_near_at_1_thr_0p1": 0.0,
72
+ "negative_near_at_1_thr_0p2": 0.0,
73
+ "negative_near_at_1_thr_0p4": 0.14666666666666667,
74
+ "negative_near_at_2_thr_0p05": 0.0,
75
+ "negative_near_at_2_thr_0p1": 0.0,
76
+ "negative_near_at_2_thr_0p2": 0.0,
77
+ "negative_near_at_2_thr_0p4": 0.18666666666666668,
78
+ "negative_near_at_4_thr_0p05": 0.0,
79
+ "negative_near_at_4_thr_0p1": 0.0,
80
+ "negative_near_at_4_thr_0p2": 0.0,
81
+ "negative_near_at_4_thr_0p4": 0.2,
82
+ "negative_near_at_8_thr_0p05": 0.0,
83
+ "negative_near_at_8_thr_0p1": 0.0,
84
+ "negative_near_at_8_thr_0p2": 0.0,
85
+ "negative_near_at_8_thr_0p4": 0.21333333333333335,
86
+ "num_groups": 93,
87
+ "positive_closer_than_negative_rate_at_1": 0.6266666666666667,
88
+ "positive_closer_than_negative_rate_at_16": 0.6533333333333333,
89
+ "positive_closer_than_negative_rate_at_2": 0.6266666666666667,
90
+ "positive_closer_than_negative_rate_at_4": 0.6666666666666666,
91
+ "positive_closer_than_negative_rate_at_8": 0.64,
92
+ "ptr_proxy_at_16_thr_0p05": 0.0,
93
+ "ptr_proxy_at_16_thr_0p1": 0.0,
94
+ "ptr_proxy_at_16_thr_0p2": 0.07526881720430108,
95
+ "ptr_proxy_at_16_thr_0p4": 0.34408602150537637,
96
+ "ptr_proxy_at_1_thr_0p05": 0.0,
97
+ "ptr_proxy_at_1_thr_0p1": 0.0,
98
+ "ptr_proxy_at_1_thr_0p2": 0.021505376344086023,
99
+ "ptr_proxy_at_1_thr_0p4": 0.1935483870967742,
100
+ "ptr_proxy_at_2_thr_0p05": 0.0,
101
+ "ptr_proxy_at_2_thr_0p1": 0.0,
102
+ "ptr_proxy_at_2_thr_0p2": 0.043010752688172046,
103
+ "ptr_proxy_at_2_thr_0p4": 0.21505376344086022,
104
+ "ptr_proxy_at_4_thr_0p05": 0.0,
105
+ "ptr_proxy_at_4_thr_0p1": 0.0,
106
+ "ptr_proxy_at_4_thr_0p2": 0.07526881720430108,
107
+ "ptr_proxy_at_4_thr_0p4": 0.24731182795698925,
108
+ "ptr_proxy_at_8_thr_0p05": 0.0,
109
+ "ptr_proxy_at_8_thr_0p1": 0.0,
110
+ "ptr_proxy_at_8_thr_0p2": 0.07526881720430108,
111
+ "ptr_proxy_at_8_thr_0p4": 0.26881720430107525
112
+ },
113
+ "per_task": {
114
+ "LiftPegUpright-v1": {
115
+ "mean_positive_min_rms_l2_at_1": 0.39111942974351616,
116
+ "mean_positive_min_rms_l2_at_16": 0.3512190545690644,
117
+ "mean_positive_min_rms_l2_at_2": 0.37272058733684876,
118
+ "mean_positive_min_rms_l2_at_4": 0.3578317205091028,
119
+ "mean_positive_min_rms_l2_at_8": 0.3572936568478917,
120
+ "median_positive_min_rms_l2_at_1": 0.36694583942625314,
121
+ "median_positive_min_rms_l2_at_16": 0.3110580651521895,
122
+ "median_positive_min_rms_l2_at_2": 0.36583500576650796,
123
+ "median_positive_min_rms_l2_at_4": 0.329721585304501,
124
+ "median_positive_min_rms_l2_at_8": 0.329721585304501,
125
+ "negative_near_at_16_thr_0p05": 0.0,
126
+ "negative_near_at_16_thr_0p1": 0.0,
127
+ "negative_near_at_16_thr_0p2": 0.0,
128
+ "negative_near_at_16_thr_0p4": 0.5,
129
+ "negative_near_at_1_thr_0p05": 0.0,
130
+ "negative_near_at_1_thr_0p1": 0.0,
131
+ "negative_near_at_1_thr_0p2": 0.0,
132
+ "negative_near_at_1_thr_0p4": 0.25,
133
+ "negative_near_at_2_thr_0p05": 0.0,
134
+ "negative_near_at_2_thr_0p1": 0.0,
135
+ "negative_near_at_2_thr_0p2": 0.0,
136
+ "negative_near_at_2_thr_0p4": 0.5,
137
+ "negative_near_at_4_thr_0p05": 0.0,
138
+ "negative_near_at_4_thr_0p1": 0.0,
139
+ "negative_near_at_4_thr_0p2": 0.0,
140
+ "negative_near_at_4_thr_0p4": 0.5,
141
+ "negative_near_at_8_thr_0p05": 0.0,
142
+ "negative_near_at_8_thr_0p1": 0.0,
143
+ "negative_near_at_8_thr_0p2": 0.0,
144
+ "negative_near_at_8_thr_0p4": 0.5,
145
+ "num_groups": 8,
146
+ "positive_closer_than_negative_rate_at_1": 0.75,
147
+ "positive_closer_than_negative_rate_at_16": 0.75,
148
+ "positive_closer_than_negative_rate_at_2": 0.75,
149
+ "positive_closer_than_negative_rate_at_4": 0.75,
150
+ "positive_closer_than_negative_rate_at_8": 0.75,
151
+ "ptr_proxy_at_16_thr_0p05": 0.0,
152
+ "ptr_proxy_at_16_thr_0p1": 0.0,
153
+ "ptr_proxy_at_16_thr_0p2": 0.25,
154
+ "ptr_proxy_at_16_thr_0p4": 0.75,
155
+ "ptr_proxy_at_1_thr_0p05": 0.0,
156
+ "ptr_proxy_at_1_thr_0p1": 0.0,
157
+ "ptr_proxy_at_1_thr_0p2": 0.125,
158
+ "ptr_proxy_at_1_thr_0p4": 0.5,
159
+ "ptr_proxy_at_2_thr_0p05": 0.0,
160
+ "ptr_proxy_at_2_thr_0p1": 0.0,
161
+ "ptr_proxy_at_2_thr_0p2": 0.25,
162
+ "ptr_proxy_at_2_thr_0p4": 0.5,
163
+ "ptr_proxy_at_4_thr_0p05": 0.0,
164
+ "ptr_proxy_at_4_thr_0p1": 0.0,
165
+ "ptr_proxy_at_4_thr_0p2": 0.25,
166
+ "ptr_proxy_at_4_thr_0p4": 0.75,
167
+ "ptr_proxy_at_8_thr_0p05": 0.0,
168
+ "ptr_proxy_at_8_thr_0p1": 0.0,
169
+ "ptr_proxy_at_8_thr_0p2": 0.25,
170
+ "ptr_proxy_at_8_thr_0p4": 0.75
171
+ },
172
+ "PickCube-v1": {
173
+ "mean_positive_min_rms_l2_at_1": 0.6533455486782763,
174
+ "mean_positive_min_rms_l2_at_16": 0.40976408842272166,
175
+ "mean_positive_min_rms_l2_at_2": 0.5831845872132485,
176
+ "mean_positive_min_rms_l2_at_4": 0.4808842074614948,
177
+ "mean_positive_min_rms_l2_at_8": 0.4387575051772419,
178
+ "median_positive_min_rms_l2_at_1": 0.619694607656212,
179
+ "median_positive_min_rms_l2_at_16": 0.4070159486917856,
180
+ "median_positive_min_rms_l2_at_2": 0.5704718658537254,
181
+ "median_positive_min_rms_l2_at_4": 0.4804083273804754,
182
+ "median_positive_min_rms_l2_at_8": 0.42884823945946465,
183
+ "negative_near_at_16_thr_0p05": 0.0,
184
+ "negative_near_at_16_thr_0p1": 0.0,
185
+ "negative_near_at_16_thr_0p2": 0.0,
186
+ "negative_near_at_16_thr_0p4": 0.0,
187
+ "negative_near_at_1_thr_0p05": 0.0,
188
+ "negative_near_at_1_thr_0p1": 0.0,
189
+ "negative_near_at_1_thr_0p2": 0.0,
190
+ "negative_near_at_1_thr_0p4": 0.0,
191
+ "negative_near_at_2_thr_0p05": 0.0,
192
+ "negative_near_at_2_thr_0p1": 0.0,
193
+ "negative_near_at_2_thr_0p2": 0.0,
194
+ "negative_near_at_2_thr_0p4": 0.0,
195
+ "negative_near_at_4_thr_0p05": 0.0,
196
+ "negative_near_at_4_thr_0p1": 0.0,
197
+ "negative_near_at_4_thr_0p2": 0.0,
198
+ "negative_near_at_4_thr_0p4": 0.0,
199
+ "negative_near_at_8_thr_0p05": 0.0,
200
+ "negative_near_at_8_thr_0p1": 0.0,
201
+ "negative_near_at_8_thr_0p2": 0.0,
202
+ "negative_near_at_8_thr_0p4": 0.0,
203
+ "num_groups": 3,
204
+ "positive_closer_than_negative_rate_at_1": 0.3333333333333333,
205
+ "positive_closer_than_negative_rate_at_16": 1.0,
206
+ "positive_closer_than_negative_rate_at_2": 0.3333333333333333,
207
+ "positive_closer_than_negative_rate_at_4": 1.0,
208
+ "positive_closer_than_negative_rate_at_8": 1.0,
209
+ "ptr_proxy_at_16_thr_0p05": 0.0,
210
+ "ptr_proxy_at_16_thr_0p1": 0.0,
211
+ "ptr_proxy_at_16_thr_0p2": 0.0,
212
+ "ptr_proxy_at_16_thr_0p4": 0.3333333333333333,
213
+ "ptr_proxy_at_1_thr_0p05": 0.0,
214
+ "ptr_proxy_at_1_thr_0p1": 0.0,
215
+ "ptr_proxy_at_1_thr_0p2": 0.0,
216
+ "ptr_proxy_at_1_thr_0p4": 0.0,
217
+ "ptr_proxy_at_2_thr_0p05": 0.0,
218
+ "ptr_proxy_at_2_thr_0p1": 0.0,
219
+ "ptr_proxy_at_2_thr_0p2": 0.0,
220
+ "ptr_proxy_at_2_thr_0p4": 0.0,
221
+ "ptr_proxy_at_4_thr_0p05": 0.0,
222
+ "ptr_proxy_at_4_thr_0p1": 0.0,
223
+ "ptr_proxy_at_4_thr_0p2": 0.0,
224
+ "ptr_proxy_at_4_thr_0p4": 0.0,
225
+ "ptr_proxy_at_8_thr_0p05": 0.0,
226
+ "ptr_proxy_at_8_thr_0p1": 0.0,
227
+ "ptr_proxy_at_8_thr_0p2": 0.0,
228
+ "ptr_proxy_at_8_thr_0p4": 0.0
229
+ },
230
+ "PullCube-v1": {
231
+ "mean_positive_min_rms_l2_at_1": 1.061183264401149,
232
+ "mean_positive_min_rms_l2_at_16": 0.8767902765528292,
233
+ "mean_positive_min_rms_l2_at_2": 1.0156087862432717,
234
+ "mean_positive_min_rms_l2_at_4": 0.9401422230340668,
235
+ "mean_positive_min_rms_l2_at_8": 0.8971625193028189,
236
+ "median_positive_min_rms_l2_at_1": 1.0600889208043527,
237
+ "median_positive_min_rms_l2_at_16": 0.9114091492851459,
238
+ "median_positive_min_rms_l2_at_2": 1.0529284695849428,
239
+ "median_positive_min_rms_l2_at_4": 0.9901489630299898,
240
+ "median_positive_min_rms_l2_at_8": 0.9482858505207875,
241
+ "negative_near_at_16_thr_0p05": 0.0,
242
+ "negative_near_at_16_thr_0p1": 0.0,
243
+ "negative_near_at_16_thr_0p2": 0.0,
244
+ "negative_near_at_16_thr_0p4": 0.025,
245
+ "negative_near_at_1_thr_0p05": 0.0,
246
+ "negative_near_at_1_thr_0p1": 0.0,
247
+ "negative_near_at_1_thr_0p2": 0.0,
248
+ "negative_near_at_1_thr_0p4": 0.0,
249
+ "negative_near_at_2_thr_0p05": 0.0,
250
+ "negative_near_at_2_thr_0p1": 0.0,
251
+ "negative_near_at_2_thr_0p2": 0.0,
252
+ "negative_near_at_2_thr_0p4": 0.0,
253
+ "negative_near_at_4_thr_0p05": 0.0,
254
+ "negative_near_at_4_thr_0p1": 0.0,
255
+ "negative_near_at_4_thr_0p2": 0.0,
256
+ "negative_near_at_4_thr_0p4": 0.0,
257
+ "negative_near_at_8_thr_0p05": 0.0,
258
+ "negative_near_at_8_thr_0p1": 0.0,
259
+ "negative_near_at_8_thr_0p2": 0.0,
260
+ "negative_near_at_8_thr_0p4": 0.025,
261
+ "num_groups": 51,
262
+ "positive_closer_than_negative_rate_at_1": 0.5,
263
+ "positive_closer_than_negative_rate_at_16": 0.45,
264
+ "positive_closer_than_negative_rate_at_2": 0.475,
265
+ "positive_closer_than_negative_rate_at_4": 0.5,
266
+ "positive_closer_than_negative_rate_at_8": 0.45,
267
+ "ptr_proxy_at_16_thr_0p05": 0.0,
268
+ "ptr_proxy_at_16_thr_0p1": 0.0,
269
+ "ptr_proxy_at_16_thr_0p2": 0.0,
270
+ "ptr_proxy_at_16_thr_0p4": 0.0196078431372549,
271
+ "ptr_proxy_at_1_thr_0p05": 0.0,
272
+ "ptr_proxy_at_1_thr_0p1": 0.0,
273
+ "ptr_proxy_at_1_thr_0p2": 0.0,
274
+ "ptr_proxy_at_1_thr_0p4": 0.0,
275
+ "ptr_proxy_at_2_thr_0p05": 0.0,
276
+ "ptr_proxy_at_2_thr_0p1": 0.0,
277
+ "ptr_proxy_at_2_thr_0p2": 0.0,
278
+ "ptr_proxy_at_2_thr_0p4": 0.0,
279
+ "ptr_proxy_at_4_thr_0p05": 0.0,
280
+ "ptr_proxy_at_4_thr_0p1": 0.0,
281
+ "ptr_proxy_at_4_thr_0p2": 0.0,
282
+ "ptr_proxy_at_4_thr_0p4": 0.0,
283
+ "ptr_proxy_at_8_thr_0p05": 0.0,
284
+ "ptr_proxy_at_8_thr_0p1": 0.0,
285
+ "ptr_proxy_at_8_thr_0p2": 0.0,
286
+ "ptr_proxy_at_8_thr_0p4": 0.0196078431372549
287
+ },
288
+ "PushCube-v1": {
289
+ "mean_positive_min_rms_l2_at_1": 0.5660707757133526,
290
+ "mean_positive_min_rms_l2_at_16": 0.43626412801277614,
291
+ "mean_positive_min_rms_l2_at_2": 0.5382408222296493,
292
+ "mean_positive_min_rms_l2_at_4": 0.5010306791205937,
293
+ "mean_positive_min_rms_l2_at_8": 0.48414222516631067,
294
+ "median_positive_min_rms_l2_at_1": 0.5841259157354051,
295
+ "median_positive_min_rms_l2_at_16": 0.394870482771558,
296
+ "median_positive_min_rms_l2_at_2": 0.573883216868926,
297
+ "median_positive_min_rms_l2_at_4": 0.5128971398622109,
298
+ "median_positive_min_rms_l2_at_8": 0.5128971398622109,
299
+ "negative_near_at_16_thr_0p05": 0.0,
300
+ "negative_near_at_16_thr_0p1": 0.0,
301
+ "negative_near_at_16_thr_0p2": 0.0,
302
+ "negative_near_at_16_thr_0p4": 0.25,
303
+ "negative_near_at_1_thr_0p05": 0.0,
304
+ "negative_near_at_1_thr_0p1": 0.0,
305
+ "negative_near_at_1_thr_0p2": 0.0,
306
+ "negative_near_at_1_thr_0p4": 0.0,
307
+ "negative_near_at_2_thr_0p05": 0.0,
308
+ "negative_near_at_2_thr_0p1": 0.0,
309
+ "negative_near_at_2_thr_0p2": 0.0,
310
+ "negative_near_at_2_thr_0p4": 0.0,
311
+ "negative_near_at_4_thr_0p05": 0.0,
312
+ "negative_near_at_4_thr_0p1": 0.0,
313
+ "negative_near_at_4_thr_0p2": 0.0,
314
+ "negative_near_at_4_thr_0p4": 0.0,
315
+ "negative_near_at_8_thr_0p05": 0.0,
316
+ "negative_near_at_8_thr_0p1": 0.0,
317
+ "negative_near_at_8_thr_0p2": 0.0,
318
+ "negative_near_at_8_thr_0p4": 0.0,
319
+ "num_groups": 15,
320
+ "positive_closer_than_negative_rate_at_1": 0.625,
321
+ "positive_closer_than_negative_rate_at_16": 0.875,
322
+ "positive_closer_than_negative_rate_at_2": 0.75,
323
+ "positive_closer_than_negative_rate_at_4": 0.75,
324
+ "positive_closer_than_negative_rate_at_8": 0.75,
325
+ "ptr_proxy_at_16_thr_0p05": 0.0,
326
+ "ptr_proxy_at_16_thr_0p1": 0.0,
327
+ "ptr_proxy_at_16_thr_0p2": 0.0,
328
+ "ptr_proxy_at_16_thr_0p4": 0.6,
329
+ "ptr_proxy_at_1_thr_0p05": 0.0,
330
+ "ptr_proxy_at_1_thr_0p1": 0.0,
331
+ "ptr_proxy_at_1_thr_0p2": 0.0,
332
+ "ptr_proxy_at_1_thr_0p4": 0.06666666666666667,
333
+ "ptr_proxy_at_2_thr_0p05": 0.0,
334
+ "ptr_proxy_at_2_thr_0p1": 0.0,
335
+ "ptr_proxy_at_2_thr_0p2": 0.0,
336
+ "ptr_proxy_at_2_thr_0p4": 0.06666666666666667,
337
+ "ptr_proxy_at_4_thr_0p05": 0.0,
338
+ "ptr_proxy_at_4_thr_0p1": 0.0,
339
+ "ptr_proxy_at_4_thr_0p2": 0.0,
340
+ "ptr_proxy_at_4_thr_0p4": 0.13333333333333333,
341
+ "ptr_proxy_at_8_thr_0p05": 0.0,
342
+ "ptr_proxy_at_8_thr_0p1": 0.0,
343
+ "ptr_proxy_at_8_thr_0p2": 0.0,
344
+ "ptr_proxy_at_8_thr_0p4": 0.2
345
+ },
346
+ "StackCube-v1": {
347
+ "mean_positive_min_rms_l2_at_1": 0.3164977384178503,
348
+ "mean_positive_min_rms_l2_at_16": 0.26978172227223995,
349
+ "mean_positive_min_rms_l2_at_2": 0.29039938999739284,
350
+ "mean_positive_min_rms_l2_at_4": 0.28072273369090156,
351
+ "mean_positive_min_rms_l2_at_8": 0.2748228852583557,
352
+ "median_positive_min_rms_l2_at_1": 0.2746254167700074,
353
+ "median_positive_min_rms_l2_at_16": 0.256549493180436,
354
+ "median_positive_min_rms_l2_at_2": 0.26796239542447886,
355
+ "median_positive_min_rms_l2_at_4": 0.256549493180436,
356
+ "median_positive_min_rms_l2_at_8": 0.256549493180436,
357
+ "negative_near_at_16_thr_0p05": 0.0,
358
+ "negative_near_at_16_thr_0p1": 0.0,
359
+ "negative_near_at_16_thr_0p2": 0.0,
360
+ "negative_near_at_16_thr_0p4": 0.6875,
361
+ "negative_near_at_1_thr_0p05": 0.0,
362
+ "negative_near_at_1_thr_0p1": 0.0,
363
+ "negative_near_at_1_thr_0p2": 0.0,
364
+ "negative_near_at_1_thr_0p4": 0.5625,
365
+ "negative_near_at_2_thr_0p05": 0.0,
366
+ "negative_near_at_2_thr_0p1": 0.0,
367
+ "negative_near_at_2_thr_0p2": 0.0,
368
+ "negative_near_at_2_thr_0p4": 0.625,
369
+ "negative_near_at_4_thr_0p05": 0.0,
370
+ "negative_near_at_4_thr_0p1": 0.0,
371
+ "negative_near_at_4_thr_0p2": 0.0,
372
+ "negative_near_at_4_thr_0p4": 0.6875,
373
+ "negative_near_at_8_thr_0p05": 0.0,
374
+ "negative_near_at_8_thr_0p1": 0.0,
375
+ "negative_near_at_8_thr_0p2": 0.0,
376
+ "negative_near_at_8_thr_0p4": 0.6875,
377
+ "num_groups": 16,
378
+ "positive_closer_than_negative_rate_at_1": 0.9375,
379
+ "positive_closer_than_negative_rate_at_16": 0.9375,
380
+ "positive_closer_than_negative_rate_at_2": 0.9375,
381
+ "positive_closer_than_negative_rate_at_4": 0.9375,
382
+ "positive_closer_than_negative_rate_at_8": 0.9375,
383
+ "ptr_proxy_at_16_thr_0p05": 0.0,
384
+ "ptr_proxy_at_16_thr_0p1": 0.0,
385
+ "ptr_proxy_at_16_thr_0p2": 0.3125,
386
+ "ptr_proxy_at_16_thr_0p4": 0.9375,
387
+ "ptr_proxy_at_1_thr_0p05": 0.0,
388
+ "ptr_proxy_at_1_thr_0p1": 0.0,
389
+ "ptr_proxy_at_1_thr_0p2": 0.0625,
390
+ "ptr_proxy_at_1_thr_0p4": 0.8125,
391
+ "ptr_proxy_at_2_thr_0p05": 0.0,
392
+ "ptr_proxy_at_2_thr_0p1": 0.0,
393
+ "ptr_proxy_at_2_thr_0p2": 0.125,
394
+ "ptr_proxy_at_2_thr_0p4": 0.9375,
395
+ "ptr_proxy_at_4_thr_0p05": 0.0,
396
+ "ptr_proxy_at_4_thr_0p1": 0.0,
397
+ "ptr_proxy_at_4_thr_0p2": 0.3125,
398
+ "ptr_proxy_at_4_thr_0p4": 0.9375,
399
+ "ptr_proxy_at_8_thr_0p05": 0.0,
400
+ "ptr_proxy_at_8_thr_0p1": 0.0,
401
+ "ptr_proxy_at_8_thr_0p2": 0.3125,
402
+ "ptr_proxy_at_8_thr_0p4": 0.9375
403
+ }
404
+ },
405
+ "report_type": "positive_tangent_cvae_generator_eval",
406
+ "source": "results/generator_v2_positive_tangent_cvae_temp0p5_eval.json",
407
+ "sweep_best": {
408
+ "beta": 0.02,
409
+ "checkpoint": "results/generator_v2_positive_tangent_cvae_temp0p5.pt",
410
+ "epochs": 300,
411
+ "final_kl": 1.4739192907320637,
412
+ "final_loss": 0.06265430263117677,
413
+ "final_reconstruction_mse": 0.03317591676081162,
414
+ "latent_dim": 24,
415
+ "mean_positive_min_rms_l2_at_16": 0.641030304113575,
416
+ "negative_near_at_16_thr_0p2": 0.0,
417
+ "num_val_groups_with_positive": 93,
418
+ "path": "results/generator_v2_positive_tangent_cvae_temp0p5_eval.json",
419
+ "positive_closer_than_negative_rate_at_16": 0.6533333333333333,
420
+ "ptr_proxy_at_16_thr_0p2": 0.07526881720430108,
421
+ "ptr_proxy_at_16_thr_0p4": 0.34408602150537637,
422
+ "temperature": 0.5
423
+ },
424
+ "sweep_summary": "results/generator_v2_positive_tangent_cvae_sweep_summary.json",
425
+ "targets": "/lustre09/project/6037638/knguy52/vla/results/generator_v2_positive_tangent_targets.json",
426
+ "train_history": [
427
+ {
428
+ "epoch": 1.0,
429
+ "kl": 0.05916015346082105,
430
+ "loss": 0.9294424249055191,
431
+ "reconstruction_mse": 0.9282592224557332
432
+ },
433
+ {
434
+ "epoch": 30.0,
435
+ "kl": 1.290173786709424,
436
+ "loss": 0.16792809935861916,
437
+ "reconstruction_mse": 0.142124623284117
438
+ },
439
+ {
440
+ "epoch": 60.0,
441
+ "kl": 1.407687096046486,
442
+ "loss": 0.12209432023594495,
443
+ "reconstruction_mse": 0.0939405790105686
444
+ },
445
+ {
446
+ "epoch": 90.0,
447
+ "kl": 1.4535648279476643,
448
+ "loss": 0.1009127536231966,
449
+ "reconstruction_mse": 0.07184145872003846
450
+ },
451
+ {
452
+ "epoch": 120.0,
453
+ "kl": 1.4674777160701846,
454
+ "loss": 0.08820352103803711,
455
+ "reconstruction_mse": 0.058853968741599226
456
+ },
457
+ {
458
+ "epoch": 150.0,
459
+ "kl": 1.4916276694936228,
460
+ "loss": 0.0795949538532203,
461
+ "reconstruction_mse": 0.049762401891520903
462
+ },
463
+ {
464
+ "epoch": 180.0,
465
+ "kl": 1.5141307252874359,
466
+ "loss": 0.07407708264551498,
467
+ "reconstruction_mse": 0.04379446841216644
468
+ },
469
+ {
470
+ "epoch": 210.0,
471
+ "kl": 1.4909729225209638,
472
+ "loss": 0.07035177045553077,
473
+ "reconstruction_mse": 0.04053231228596977
474
+ },
475
+ {
476
+ "epoch": 240.0,
477
+ "kl": 1.5003416400918976,
478
+ "loss": 0.06713701829388861,
479
+ "reconstruction_mse": 0.03713018764960945
480
+ },
481
+ {
482
+ "epoch": 270.0,
483
+ "kl": 1.4749512033589893,
484
+ "loss": 0.06458978888536733,
485
+ "reconstruction_mse": 0.03509076587072199
486
+ },
487
+ {
488
+ "epoch": 300.0,
489
+ "kl": 1.4739192907320637,
490
+ "loss": 0.06265430263117677,
491
+ "reconstruction_mse": 0.03317591676081162
492
+ }
493
+ ],
494
+ "train_positive_by_task": {
495
+ "LiftPegUpright-v1": 50,
496
+ "PickCube-v1": 15,
497
+ "PullCube-v1": 723,
498
+ "PushCube-v1": 308,
499
+ "StackCube-v1": 102
500
+ }
501
+ },
502
+ "generator_v2_guided_spline_flow_support_proxy": {
503
+ "missing": true,
504
+ "source": "results/generator_v2_positive_tangent_guided_spline_flow_eval.json"
505
+ },
506
+ "generator_v2_spline_cvae_support_proxy": {
507
+ "action_dim": 7,
508
+ "code_dim": 21,
509
+ "config": {
510
+ "batch_size": 128,
511
+ "beta": 0.02,
512
+ "diversity_temperature": 1.0,
513
+ "epochs": 300,
514
+ "hidden_dim": 256,
515
+ "latent_dim": 16,
516
+ "learning_rate": 0.001,
517
+ "obs_dim": 96,
518
+ "seed": 0,
519
+ "text_dim": 64,
520
+ "val_fraction": 0.2
521
+ },
522
+ "horizon": 16,
523
+ "label_counts": {
524
+ "negative": 35225,
525
+ "neutral": 6310,
526
+ "positive": 1560
527
+ },
528
+ "metric_scope": "offline_support_proxy",
529
+ "missing": false,
530
+ "note": "Spline-CVAE proposals are sampled from train-only positive tangent keyframes and decoded through a smooth keyframe spline before heldout support evaluation.",
531
+ "num_examples": 43095,
532
+ "num_groups": 2873,
533
+ "num_train_examples": 34275,
534
+ "num_train_positive": 1198,
535
+ "num_val_examples": 8820,
536
+ "num_val_groups_with_positive": 93,
537
+ "overall": {
538
+ "mean_positive_min_rms_l2_at_1": 0.8324843767866102,
539
+ "mean_positive_min_rms_l2_at_16": 0.6786195585806957,
540
+ "mean_positive_min_rms_l2_at_2": 0.7706767395088805,
541
+ "mean_positive_min_rms_l2_at_4": 0.7285156157415871,
542
+ "mean_positive_min_rms_l2_at_8": 0.7039727128410712,
543
+ "median_positive_min_rms_l2_at_1": 0.7611119674928741,
544
+ "median_positive_min_rms_l2_at_16": 0.6059492461526662,
545
+ "median_positive_min_rms_l2_at_2": 0.6780935293506007,
546
+ "median_positive_min_rms_l2_at_4": 0.623886642512938,
547
+ "median_positive_min_rms_l2_at_8": 0.6200572061777931,
548
+ "negative_near_at_16_thr_0p05": 0.0,
549
+ "negative_near_at_16_thr_0p1": 0.0,
550
+ "negative_near_at_16_thr_0p2": 0.013333333333333334,
551
+ "negative_near_at_16_thr_0p4": 0.24,
552
+ "negative_near_at_1_thr_0p05": 0.0,
553
+ "negative_near_at_1_thr_0p1": 0.0,
554
+ "negative_near_at_1_thr_0p2": 0.013333333333333334,
555
+ "negative_near_at_1_thr_0p4": 0.2,
556
+ "negative_near_at_2_thr_0p05": 0.0,
557
+ "negative_near_at_2_thr_0p1": 0.0,
558
+ "negative_near_at_2_thr_0p2": 0.013333333333333334,
559
+ "negative_near_at_2_thr_0p4": 0.21333333333333335,
560
+ "negative_near_at_4_thr_0p05": 0.0,
561
+ "negative_near_at_4_thr_0p1": 0.0,
562
+ "negative_near_at_4_thr_0p2": 0.013333333333333334,
563
+ "negative_near_at_4_thr_0p4": 0.22666666666666666,
564
+ "negative_near_at_8_thr_0p05": 0.0,
565
+ "negative_near_at_8_thr_0p1": 0.0,
566
+ "negative_near_at_8_thr_0p2": 0.013333333333333334,
567
+ "negative_near_at_8_thr_0p4": 0.24,
568
+ "num_groups": 93,
569
+ "positive_closer_than_negative_rate_at_1": 0.64,
570
+ "positive_closer_than_negative_rate_at_16": 0.6666666666666666,
571
+ "positive_closer_than_negative_rate_at_2": 0.68,
572
+ "positive_closer_than_negative_rate_at_4": 0.68,
573
+ "positive_closer_than_negative_rate_at_8": 0.6666666666666666,
574
+ "ptr_proxy_at_16_thr_0p05": 0.0,
575
+ "ptr_proxy_at_16_thr_0p1": 0.021505376344086023,
576
+ "ptr_proxy_at_16_thr_0p2": 0.0967741935483871,
577
+ "ptr_proxy_at_16_thr_0p4": 0.34408602150537637,
578
+ "ptr_proxy_at_1_thr_0p05": 0.0,
579
+ "ptr_proxy_at_1_thr_0p1": 0.0,
580
+ "ptr_proxy_at_1_thr_0p2": 0.053763440860215055,
581
+ "ptr_proxy_at_1_thr_0p4": 0.24731182795698925,
582
+ "ptr_proxy_at_2_thr_0p05": 0.0,
583
+ "ptr_proxy_at_2_thr_0p1": 0.010752688172043012,
584
+ "ptr_proxy_at_2_thr_0p2": 0.07526881720430108,
585
+ "ptr_proxy_at_2_thr_0p4": 0.26881720430107525,
586
+ "ptr_proxy_at_4_thr_0p05": 0.0,
587
+ "ptr_proxy_at_4_thr_0p1": 0.021505376344086023,
588
+ "ptr_proxy_at_4_thr_0p2": 0.08602150537634409,
589
+ "ptr_proxy_at_4_thr_0p4": 0.3010752688172043,
590
+ "ptr_proxy_at_8_thr_0p05": 0.0,
591
+ "ptr_proxy_at_8_thr_0p1": 0.021505376344086023,
592
+ "ptr_proxy_at_8_thr_0p2": 0.08602150537634409,
593
+ "ptr_proxy_at_8_thr_0p4": 0.3225806451612903
594
+ },
595
+ "per_task": {
596
+ "LiftPegUpright-v1": {
597
+ "mean_positive_min_rms_l2_at_1": 0.3683599644691911,
598
+ "mean_positive_min_rms_l2_at_16": 0.32757312680334066,
599
+ "mean_positive_min_rms_l2_at_2": 0.3497347210891768,
600
+ "mean_positive_min_rms_l2_at_4": 0.34408608974726235,
601
+ "mean_positive_min_rms_l2_at_8": 0.34090666789430873,
602
+ "median_positive_min_rms_l2_at_1": 0.29348858430202773,
603
+ "median_positive_min_rms_l2_at_16": 0.2181149789756378,
604
+ "median_positive_min_rms_l2_at_2": 0.24476135363016233,
605
+ "median_positive_min_rms_l2_at_4": 0.2394059700294817,
606
+ "median_positive_min_rms_l2_at_8": 0.22696782283928876,
607
+ "negative_near_at_16_thr_0p05": 0.0,
608
+ "negative_near_at_16_thr_0p1": 0.0,
609
+ "negative_near_at_16_thr_0p2": 0.0,
610
+ "negative_near_at_16_thr_0p4": 0.625,
611
+ "negative_near_at_1_thr_0p05": 0.0,
612
+ "negative_near_at_1_thr_0p1": 0.0,
613
+ "negative_near_at_1_thr_0p2": 0.0,
614
+ "negative_near_at_1_thr_0p4": 0.625,
615
+ "negative_near_at_2_thr_0p05": 0.0,
616
+ "negative_near_at_2_thr_0p1": 0.0,
617
+ "negative_near_at_2_thr_0p2": 0.0,
618
+ "negative_near_at_2_thr_0p4": 0.625,
619
+ "negative_near_at_4_thr_0p05": 0.0,
620
+ "negative_near_at_4_thr_0p1": 0.0,
621
+ "negative_near_at_4_thr_0p2": 0.0,
622
+ "negative_near_at_4_thr_0p4": 0.625,
623
+ "negative_near_at_8_thr_0p05": 0.0,
624
+ "negative_near_at_8_thr_0p1": 0.0,
625
+ "negative_near_at_8_thr_0p2": 0.0,
626
+ "negative_near_at_8_thr_0p4": 0.625,
627
+ "num_groups": 8,
628
+ "positive_closer_than_negative_rate_at_1": 0.75,
629
+ "positive_closer_than_negative_rate_at_16": 0.75,
630
+ "positive_closer_than_negative_rate_at_2": 0.75,
631
+ "positive_closer_than_negative_rate_at_4": 0.75,
632
+ "positive_closer_than_negative_rate_at_8": 0.75,
633
+ "ptr_proxy_at_16_thr_0p05": 0.0,
634
+ "ptr_proxy_at_16_thr_0p1": 0.0,
635
+ "ptr_proxy_at_16_thr_0p2": 0.375,
636
+ "ptr_proxy_at_16_thr_0p4": 0.625,
637
+ "ptr_proxy_at_1_thr_0p05": 0.0,
638
+ "ptr_proxy_at_1_thr_0p1": 0.0,
639
+ "ptr_proxy_at_1_thr_0p2": 0.25,
640
+ "ptr_proxy_at_1_thr_0p4": 0.625,
641
+ "ptr_proxy_at_2_thr_0p05": 0.0,
642
+ "ptr_proxy_at_2_thr_0p1": 0.0,
643
+ "ptr_proxy_at_2_thr_0p2": 0.25,
644
+ "ptr_proxy_at_2_thr_0p4": 0.625,
645
+ "ptr_proxy_at_4_thr_0p05": 0.0,
646
+ "ptr_proxy_at_4_thr_0p1": 0.0,
647
+ "ptr_proxy_at_4_thr_0p2": 0.25,
648
+ "ptr_proxy_at_4_thr_0p4": 0.625,
649
+ "ptr_proxy_at_8_thr_0p05": 0.0,
650
+ "ptr_proxy_at_8_thr_0p1": 0.0,
651
+ "ptr_proxy_at_8_thr_0p2": 0.25,
652
+ "ptr_proxy_at_8_thr_0p4": 0.625
653
+ },
654
+ "PickCube-v1": {
655
+ "mean_positive_min_rms_l2_at_1": 0.6136202782550909,
656
+ "mean_positive_min_rms_l2_at_16": 0.35414095381275573,
657
+ "mean_positive_min_rms_l2_at_2": 0.5721259461194067,
658
+ "mean_positive_min_rms_l2_at_4": 0.4027172355110196,
659
+ "mean_positive_min_rms_l2_at_8": 0.4027172355110196,
660
+ "median_positive_min_rms_l2_at_1": 0.645546106339796,
661
+ "median_positive_min_rms_l2_at_16": 0.36485244367502306,
662
+ "median_positive_min_rms_l2_at_2": 0.645546106339796,
663
+ "median_positive_min_rms_l2_at_4": 0.36485244367502306,
664
+ "median_positive_min_rms_l2_at_8": 0.36485244367502306,
665
+ "negative_near_at_16_thr_0p05": 0.0,
666
+ "negative_near_at_16_thr_0p1": 0.0,
667
+ "negative_near_at_16_thr_0p2": 0.0,
668
+ "negative_near_at_16_thr_0p4": 0.3333333333333333,
669
+ "negative_near_at_1_thr_0p05": 0.0,
670
+ "negative_near_at_1_thr_0p1": 0.0,
671
+ "negative_near_at_1_thr_0p2": 0.0,
672
+ "negative_near_at_1_thr_0p4": 0.0,
673
+ "negative_near_at_2_thr_0p05": 0.0,
674
+ "negative_near_at_2_thr_0p1": 0.0,
675
+ "negative_near_at_2_thr_0p2": 0.0,
676
+ "negative_near_at_2_thr_0p4": 0.0,
677
+ "negative_near_at_4_thr_0p05": 0.0,
678
+ "negative_near_at_4_thr_0p1": 0.0,
679
+ "negative_near_at_4_thr_0p2": 0.0,
680
+ "negative_near_at_4_thr_0p4": 0.3333333333333333,
681
+ "negative_near_at_8_thr_0p05": 0.0,
682
+ "negative_near_at_8_thr_0p1": 0.0,
683
+ "negative_near_at_8_thr_0p2": 0.0,
684
+ "negative_near_at_8_thr_0p4": 0.3333333333333333,
685
+ "num_groups": 3,
686
+ "positive_closer_than_negative_rate_at_1": 1.0,
687
+ "positive_closer_than_negative_rate_at_16": 1.0,
688
+ "positive_closer_than_negative_rate_at_2": 1.0,
689
+ "positive_closer_than_negative_rate_at_4": 1.0,
690
+ "positive_closer_than_negative_rate_at_8": 1.0,
691
+ "ptr_proxy_at_16_thr_0p05": 0.0,
692
+ "ptr_proxy_at_16_thr_0p1": 0.0,
693
+ "ptr_proxy_at_16_thr_0p2": 0.0,
694
+ "ptr_proxy_at_16_thr_0p4": 0.6666666666666666,
695
+ "ptr_proxy_at_1_thr_0p05": 0.0,
696
+ "ptr_proxy_at_1_thr_0p1": 0.0,
697
+ "ptr_proxy_at_1_thr_0p2": 0.0,
698
+ "ptr_proxy_at_1_thr_0p4": 0.0,
699
+ "ptr_proxy_at_2_thr_0p05": 0.0,
700
+ "ptr_proxy_at_2_thr_0p1": 0.0,
701
+ "ptr_proxy_at_2_thr_0p2": 0.0,
702
+ "ptr_proxy_at_2_thr_0p4": 0.3333333333333333,
703
+ "ptr_proxy_at_4_thr_0p05": 0.0,
704
+ "ptr_proxy_at_4_thr_0p1": 0.0,
705
+ "ptr_proxy_at_4_thr_0p2": 0.0,
706
+ "ptr_proxy_at_4_thr_0p4": 0.6666666666666666,
707
+ "ptr_proxy_at_8_thr_0p05": 0.0,
708
+ "ptr_proxy_at_8_thr_0p1": 0.0,
709
+ "ptr_proxy_at_8_thr_0p2": 0.0,
710
+ "ptr_proxy_at_8_thr_0p4": 0.6666666666666666
711
+ },
712
+ "PullCube-v1": {
713
+ "mean_positive_min_rms_l2_at_1": 1.16509369347214,
714
+ "mean_positive_min_rms_l2_at_16": 0.9820287850385432,
715
+ "mean_positive_min_rms_l2_at_2": 1.089383689269018,
716
+ "mean_positive_min_rms_l2_at_4": 1.0380265536821784,
717
+ "mean_positive_min_rms_l2_at_8": 1.011300349039808,
718
+ "median_positive_min_rms_l2_at_1": 1.1437638837144992,
719
+ "median_positive_min_rms_l2_at_16": 0.8679921486920683,
720
+ "median_positive_min_rms_l2_at_2": 1.055569646213999,
721
+ "median_positive_min_rms_l2_at_4": 0.9903909519670494,
722
+ "median_positive_min_rms_l2_at_8": 0.9421597408441578,
723
+ "negative_near_at_16_thr_0p05": 0.0,
724
+ "negative_near_at_16_thr_0p1": 0.0,
725
+ "negative_near_at_16_thr_0p2": 0.0,
726
+ "negative_near_at_16_thr_0p4": 0.0,
727
+ "negative_near_at_1_thr_0p05": 0.0,
728
+ "negative_near_at_1_thr_0p1": 0.0,
729
+ "negative_near_at_1_thr_0p2": 0.0,
730
+ "negative_near_at_1_thr_0p4": 0.0,
731
+ "negative_near_at_2_thr_0p05": 0.0,
732
+ "negative_near_at_2_thr_0p1": 0.0,
733
+ "negative_near_at_2_thr_0p2": 0.0,
734
+ "negative_near_at_2_thr_0p4": 0.0,
735
+ "negative_near_at_4_thr_0p05": 0.0,
736
+ "negative_near_at_4_thr_0p1": 0.0,
737
+ "negative_near_at_4_thr_0p2": 0.0,
738
+ "negative_near_at_4_thr_0p4": 0.0,
739
+ "negative_near_at_8_thr_0p05": 0.0,
740
+ "negative_near_at_8_thr_0p1": 0.0,
741
+ "negative_near_at_8_thr_0p2": 0.0,
742
+ "negative_near_at_8_thr_0p4": 0.0,
743
+ "num_groups": 51,
744
+ "positive_closer_than_negative_rate_at_1": 0.475,
745
+ "positive_closer_than_negative_rate_at_16": 0.475,
746
+ "positive_closer_than_negative_rate_at_2": 0.5,
747
+ "positive_closer_than_negative_rate_at_4": 0.5,
748
+ "positive_closer_than_negative_rate_at_8": 0.475,
749
+ "ptr_proxy_at_16_thr_0p05": 0.0,
750
+ "ptr_proxy_at_16_thr_0p1": 0.0,
751
+ "ptr_proxy_at_16_thr_0p2": 0.0,
752
+ "ptr_proxy_at_16_thr_0p4": 0.0,
753
+ "ptr_proxy_at_1_thr_0p05": 0.0,
754
+ "ptr_proxy_at_1_thr_0p1": 0.0,
755
+ "ptr_proxy_at_1_thr_0p2": 0.0,
756
+ "ptr_proxy_at_1_thr_0p4": 0.0,
757
+ "ptr_proxy_at_2_thr_0p05": 0.0,
758
+ "ptr_proxy_at_2_thr_0p1": 0.0,
759
+ "ptr_proxy_at_2_thr_0p2": 0.0,
760
+ "ptr_proxy_at_2_thr_0p4": 0.0,
761
+ "ptr_proxy_at_4_thr_0p05": 0.0,
762
+ "ptr_proxy_at_4_thr_0p1": 0.0,
763
+ "ptr_proxy_at_4_thr_0p2": 0.0,
764
+ "ptr_proxy_at_4_thr_0p4": 0.0,
765
+ "ptr_proxy_at_8_thr_0p05": 0.0,
766
+ "ptr_proxy_at_8_thr_0p1": 0.0,
767
+ "ptr_proxy_at_8_thr_0p2": 0.0,
768
+ "ptr_proxy_at_8_thr_0p4": 0.0
769
+ },
770
+ "PushCube-v1": {
771
+ "mean_positive_min_rms_l2_at_1": 0.5461334077270459,
772
+ "mean_positive_min_rms_l2_at_16": 0.36652569708690724,
773
+ "mean_positive_min_rms_l2_at_2": 0.47299885292957033,
774
+ "mean_positive_min_rms_l2_at_4": 0.4366979922368094,
775
+ "mean_positive_min_rms_l2_at_8": 0.39771605771773716,
776
+ "median_positive_min_rms_l2_at_1": 0.5285297439788029,
777
+ "median_positive_min_rms_l2_at_16": 0.3462036815890633,
778
+ "median_positive_min_rms_l2_at_2": 0.48577344306723486,
779
+ "median_positive_min_rms_l2_at_4": 0.4265948305813788,
780
+ "median_positive_min_rms_l2_at_8": 0.3828662918491102,
781
+ "negative_near_at_16_thr_0p05": 0.0,
782
+ "negative_near_at_16_thr_0p1": 0.0,
783
+ "negative_near_at_16_thr_0p2": 0.0,
784
+ "negative_near_at_16_thr_0p4": 0.125,
785
+ "negative_near_at_1_thr_0p05": 0.0,
786
+ "negative_near_at_1_thr_0p1": 0.0,
787
+ "negative_near_at_1_thr_0p2": 0.0,
788
+ "negative_near_at_1_thr_0p4": 0.125,
789
+ "negative_near_at_2_thr_0p05": 0.0,
790
+ "negative_near_at_2_thr_0p1": 0.0,
791
+ "negative_near_at_2_thr_0p2": 0.0,
792
+ "negative_near_at_2_thr_0p4": 0.125,
793
+ "negative_near_at_4_thr_0p05": 0.0,
794
+ "negative_near_at_4_thr_0p1": 0.0,
795
+ "negative_near_at_4_thr_0p2": 0.0,
796
+ "negative_near_at_4_thr_0p4": 0.125,
797
+ "negative_near_at_8_thr_0p05": 0.0,
798
+ "negative_near_at_8_thr_0p1": 0.0,
799
+ "negative_near_at_8_thr_0p2": 0.0,
800
+ "negative_near_at_8_thr_0p4": 0.125,
801
+ "num_groups": 15,
802
+ "positive_closer_than_negative_rate_at_1": 0.625,
803
+ "positive_closer_than_negative_rate_at_16": 0.875,
804
+ "positive_closer_than_negative_rate_at_2": 0.875,
805
+ "positive_closer_than_negative_rate_at_4": 0.875,
806
+ "positive_closer_than_negative_rate_at_8": 0.875,
807
+ "ptr_proxy_at_16_thr_0p05": 0.0,
808
+ "ptr_proxy_at_16_thr_0p1": 0.0,
809
+ "ptr_proxy_at_16_thr_0p2": 0.0,
810
+ "ptr_proxy_at_16_thr_0p4": 0.6666666666666666,
811
+ "ptr_proxy_at_1_thr_0p05": 0.0,
812
+ "ptr_proxy_at_1_thr_0p1": 0.0,
813
+ "ptr_proxy_at_1_thr_0p2": 0.0,
814
+ "ptr_proxy_at_1_thr_0p4": 0.26666666666666666,
815
+ "ptr_proxy_at_2_thr_0p05": 0.0,
816
+ "ptr_proxy_at_2_thr_0p1": 0.0,
817
+ "ptr_proxy_at_2_thr_0p2": 0.0,
818
+ "ptr_proxy_at_2_thr_0p4": 0.26666666666666666,
819
+ "ptr_proxy_at_4_thr_0p05": 0.0,
820
+ "ptr_proxy_at_4_thr_0p1": 0.0,
821
+ "ptr_proxy_at_4_thr_0p2": 0.0,
822
+ "ptr_proxy_at_4_thr_0p4": 0.4,
823
+ "ptr_proxy_at_8_thr_0p05": 0.0,
824
+ "ptr_proxy_at_8_thr_0p1": 0.0,
825
+ "ptr_proxy_at_8_thr_0p2": 0.0,
826
+ "ptr_proxy_at_8_thr_0p4": 0.5333333333333333
827
+ },
828
+ "StackCube-v1": {
829
+ "mean_positive_min_rms_l2_at_1": 0.3138454379781945,
830
+ "mean_positive_min_rms_l2_at_16": 0.24045359867939917,
831
+ "mean_positive_min_rms_l2_at_2": 0.281570638786925,
832
+ "mean_positive_min_rms_l2_at_4": 0.2688304823820748,
833
+ "mean_positive_min_rms_l2_at_8": 0.24949991110849004,
834
+ "median_positive_min_rms_l2_at_1": 0.28648595024613627,
835
+ "median_positive_min_rms_l2_at_16": 0.22519971325524507,
836
+ "median_positive_min_rms_l2_at_2": 0.27586258142520403,
837
+ "median_positive_min_rms_l2_at_4": 0.27215323498690475,
838
+ "median_positive_min_rms_l2_at_8": 0.2678242970131075,
839
+ "negative_near_at_16_thr_0p05": 0.0,
840
+ "negative_near_at_16_thr_0p1": 0.0,
841
+ "negative_near_at_16_thr_0p2": 0.0625,
842
+ "negative_near_at_16_thr_0p4": 0.6875,
843
+ "negative_near_at_1_thr_0p05": 0.0,
844
+ "negative_near_at_1_thr_0p1": 0.0,
845
+ "negative_near_at_1_thr_0p2": 0.0625,
846
+ "negative_near_at_1_thr_0p4": 0.5625,
847
+ "negative_near_at_2_thr_0p05": 0.0,
848
+ "negative_near_at_2_thr_0p1": 0.0,
849
+ "negative_near_at_2_thr_0p2": 0.0625,
850
+ "negative_near_at_2_thr_0p4": 0.625,
851
+ "negative_near_at_4_thr_0p05": 0.0,
852
+ "negative_near_at_4_thr_0p1": 0.0,
853
+ "negative_near_at_4_thr_0p2": 0.0625,
854
+ "negative_near_at_4_thr_0p4": 0.625,
855
+ "negative_near_at_8_thr_0p05": 0.0,
856
+ "negative_near_at_8_thr_0p1": 0.0,
857
+ "negative_near_at_8_thr_0p2": 0.0625,
858
+ "negative_near_at_8_thr_0p4": 0.6875,
859
+ "num_groups": 16,
860
+ "positive_closer_than_negative_rate_at_1": 0.9375,
861
+ "positive_closer_than_negative_rate_at_16": 0.9375,
862
+ "positive_closer_than_negative_rate_at_2": 0.9375,
863
+ "positive_closer_than_negative_rate_at_4": 0.9375,
864
+ "positive_closer_than_negative_rate_at_8": 0.9375,
865
+ "ptr_proxy_at_16_thr_0p05": 0.0,
866
+ "ptr_proxy_at_16_thr_0p1": 0.125,
867
+ "ptr_proxy_at_16_thr_0p2": 0.375,
868
+ "ptr_proxy_at_16_thr_0p4": 0.9375,
869
+ "ptr_proxy_at_1_thr_0p05": 0.0,
870
+ "ptr_proxy_at_1_thr_0p1": 0.0,
871
+ "ptr_proxy_at_1_thr_0p2": 0.1875,
872
+ "ptr_proxy_at_1_thr_0p4": 0.875,
873
+ "ptr_proxy_at_2_thr_0p05": 0.0,
874
+ "ptr_proxy_at_2_thr_0p1": 0.0625,
875
+ "ptr_proxy_at_2_thr_0p2": 0.3125,
876
+ "ptr_proxy_at_2_thr_0p4": 0.9375,
877
+ "ptr_proxy_at_4_thr_0p05": 0.0,
878
+ "ptr_proxy_at_4_thr_0p1": 0.125,
879
+ "ptr_proxy_at_4_thr_0p2": 0.375,
880
+ "ptr_proxy_at_4_thr_0p4": 0.9375,
881
+ "ptr_proxy_at_8_thr_0p05": 0.0,
882
+ "ptr_proxy_at_8_thr_0p1": 0.125,
883
+ "ptr_proxy_at_8_thr_0p2": 0.375,
884
+ "ptr_proxy_at_8_thr_0p4": 0.9375
885
+ }
886
+ },
887
+ "report_type": "positive_tangent_spline_cvae_generator_eval",
888
+ "source": "results/generator_v2_positive_tangent_spline_cvae_eval.json",
889
+ "sweep_best": {
890
+ "action_dim": 7,
891
+ "beta": 0.02,
892
+ "checkpoint": "results/generator_v2_positive_tangent_spline_cvae.pt",
893
+ "code_dim": 21,
894
+ "epochs": 300,
895
+ "final_kl": 1.2526324426192472,
896
+ "final_loss": 0.0408955310006472,
897
+ "final_reconstruction_mse": 0.015842883544468722,
898
+ "horizon": 16,
899
+ "latent_dim": 16,
900
+ "mean_positive_min_rms_l2_at_16": 0.6786195585806957,
901
+ "negative_near_at_16_thr_0p2": 0.013333333333333334,
902
+ "num_val_groups_with_positive": 93,
903
+ "path": "results/generator_v2_positive_tangent_spline_cvae_eval.json",
904
+ "positive_closer_than_negative_rate_at_16": 0.6666666666666666,
905
+ "ptr_proxy_at_16_thr_0p2": 0.0967741935483871,
906
+ "ptr_proxy_at_16_thr_0p4": 0.34408602150537637,
907
+ "temperature": 1.0
908
+ },
909
+ "sweep_summary": "results/generator_v2_positive_tangent_spline_cvae_sweep_summary.json",
910
+ "targets": "/lustre09/project/6037638/knguy52/vla/results/generator_v2_positive_tangent_targets.json",
911
+ "train_history": [
912
+ {
913
+ "epoch": 1.0,
914
+ "kl": 0.06052275099021963,
915
+ "loss": 0.847702685799543,
916
+ "reconstruction_mse": 0.8464922283050015
917
+ },
918
+ {
919
+ "epoch": 30.0,
920
+ "kl": 1.5293835735878283,
921
+ "loss": 0.07977392898875604,
922
+ "reconstruction_mse": 0.049186260061640175
923
+ },
924
+ {
925
+ "epoch": 60.0,
926
+ "kl": 1.5427821162148987,
927
+ "loss": 0.060098461968472884,
928
+ "reconstruction_mse": 0.029242820726810195
929
+ },
930
+ {
931
+ "epoch": 90.0,
932
+ "kl": 1.5115915216468212,
933
+ "loss": 0.05391196909054293,
934
+ "reconstruction_mse": 0.02368013918063975
935
+ },
936
+ {
937
+ "epoch": 120.0,
938
+ "kl": 1.4614085655578588,
939
+ "loss": 0.05124673663400649,
940
+ "reconstruction_mse": 0.022018566677884786
941
+ },
942
+ {
943
+ "epoch": 150.0,
944
+ "kl": 1.4231592088390472,
945
+ "loss": 0.04805655908057208,
946
+ "reconstruction_mse": 0.01959337545978605
947
+ },
948
+ {
949
+ "epoch": 180.0,
950
+ "kl": 1.3856627714255816,
951
+ "loss": 0.046089833624076364,
952
+ "reconstruction_mse": 0.01837657860951352
953
+ },
954
+ {
955
+ "epoch": 210.0,
956
+ "kl": 1.3366322865669238,
957
+ "loss": 0.04522218739299822,
958
+ "reconstruction_mse": 0.018489543603537276
959
+ },
960
+ {
961
+ "epoch": 240.0,
962
+ "kl": 1.331887411553792,
963
+ "loss": 0.04308798692759767,
964
+ "reconstruction_mse": 0.016450239239705226
965
+ },
966
+ {
967
+ "epoch": 270.0,
968
+ "kl": 1.3184727219388959,
969
+ "loss": 0.04246590936397869,
970
+ "reconstruction_mse": 0.01609645624223705
971
+ },
972
+ {
973
+ "epoch": 300.0,
974
+ "kl": 1.2526324426192472,
975
+ "loss": 0.0408955310006472,
976
+ "reconstruction_mse": 0.015842883544468722
977
+ }
978
+ ],
979
+ "train_positive_by_task": {
980
+ "LiftPegUpright-v1": 50,
981
+ "PickCube-v1": 15,
982
+ "PullCube-v1": 723,
983
+ "PushCube-v1": 308,
984
+ "StackCube-v1": 102
985
+ }
986
+ },
987
+ "generator_v2_spline_flow_support_proxy": {
988
+ "action_dim": 7,
989
+ "code_dim": 21,
990
+ "config": {
991
+ "batch_size": 128,
992
+ "epochs": 300,
993
+ "hidden_dim": 256,
994
+ "learning_rate": 0.001,
995
+ "noise_scale": 0.5,
996
+ "obs_dim": 96,
997
+ "sample_steps": 16,
998
+ "seed": 0,
999
+ "text_dim": 64,
1000
+ "val_fraction": 0.2
1001
+ },
1002
+ "horizon": 16,
1003
+ "metric_scope": "offline_support_proxy",
1004
+ "missing": false,
1005
+ "note": "Spline-flow proposals are sampled by integrating a conditional flow-matching vector field in positive keyframe tangent space, then decoded to full action chunks.",
1006
+ "num_examples": 43095,
1007
+ "num_groups": 2873,
1008
+ "num_train_examples": 34275,
1009
+ "num_train_positive": 1198,
1010
+ "num_val_examples": 8820,
1011
+ "num_val_groups_with_positive": 93,
1012
+ "overall": {
1013
+ "mean_positive_min_rms_l2_at_1": 0.9198481625079649,
1014
+ "mean_positive_min_rms_l2_at_16": 0.7541321921929743,
1015
+ "mean_positive_min_rms_l2_at_2": 0.853517581386382,
1016
+ "mean_positive_min_rms_l2_at_4": 0.8021073418071235,
1017
+ "mean_positive_min_rms_l2_at_8": 0.7756408230119585,
1018
+ "median_positive_min_rms_l2_at_1": 0.8076341837137975,
1019
+ "median_positive_min_rms_l2_at_16": 0.6209217882785246,
1020
+ "median_positive_min_rms_l2_at_2": 0.7370106275644498,
1021
+ "median_positive_min_rms_l2_at_4": 0.6988648313820504,
1022
+ "median_positive_min_rms_l2_at_8": 0.6524620059996848,
1023
+ "negative_near_at_16_thr_0p05": 0.0,
1024
+ "negative_near_at_16_thr_0p1": 0.0,
1025
+ "negative_near_at_16_thr_0p2": 0.0,
1026
+ "negative_near_at_16_thr_0p4": 0.16,
1027
+ "negative_near_at_1_thr_0p05": 0.0,
1028
+ "negative_near_at_1_thr_0p1": 0.0,
1029
+ "negative_near_at_1_thr_0p2": 0.0,
1030
+ "negative_near_at_1_thr_0p4": 0.02666666666666667,
1031
+ "negative_near_at_2_thr_0p05": 0.0,
1032
+ "negative_near_at_2_thr_0p1": 0.0,
1033
+ "negative_near_at_2_thr_0p2": 0.0,
1034
+ "negative_near_at_2_thr_0p4": 0.04,
1035
+ "negative_near_at_4_thr_0p05": 0.0,
1036
+ "negative_near_at_4_thr_0p1": 0.0,
1037
+ "negative_near_at_4_thr_0p2": 0.0,
1038
+ "negative_near_at_4_thr_0p4": 0.09333333333333334,
1039
+ "negative_near_at_8_thr_0p05": 0.0,
1040
+ "negative_near_at_8_thr_0p1": 0.0,
1041
+ "negative_near_at_8_thr_0p2": 0.0,
1042
+ "negative_near_at_8_thr_0p4": 0.10666666666666667,
1043
+ "num_groups": 93,
1044
+ "positive_closer_than_negative_rate_at_1": 0.6666666666666666,
1045
+ "positive_closer_than_negative_rate_at_16": 0.6666666666666666,
1046
+ "positive_closer_than_negative_rate_at_2": 0.64,
1047
+ "positive_closer_than_negative_rate_at_4": 0.64,
1048
+ "positive_closer_than_negative_rate_at_8": 0.6666666666666666,
1049
+ "ptr_proxy_at_16_thr_0p05": 0.0,
1050
+ "ptr_proxy_at_16_thr_0p1": 0.0,
1051
+ "ptr_proxy_at_16_thr_0p2": 0.010752688172043012,
1052
+ "ptr_proxy_at_16_thr_0p4": 0.2903225806451613,
1053
+ "ptr_proxy_at_1_thr_0p05": 0.0,
1054
+ "ptr_proxy_at_1_thr_0p1": 0.0,
1055
+ "ptr_proxy_at_1_thr_0p2": 0.0,
1056
+ "ptr_proxy_at_1_thr_0p4": 0.12903225806451613,
1057
+ "ptr_proxy_at_2_thr_0p05": 0.0,
1058
+ "ptr_proxy_at_2_thr_0p1": 0.0,
1059
+ "ptr_proxy_at_2_thr_0p2": 0.0,
1060
+ "ptr_proxy_at_2_thr_0p4": 0.17204301075268819,
1061
+ "ptr_proxy_at_4_thr_0p05": 0.0,
1062
+ "ptr_proxy_at_4_thr_0p1": 0.0,
1063
+ "ptr_proxy_at_4_thr_0p2": 0.010752688172043012,
1064
+ "ptr_proxy_at_4_thr_0p4": 0.24731182795698925,
1065
+ "ptr_proxy_at_8_thr_0p05": 0.0,
1066
+ "ptr_proxy_at_8_thr_0p1": 0.0,
1067
+ "ptr_proxy_at_8_thr_0p2": 0.010752688172043012,
1068
+ "ptr_proxy_at_8_thr_0p4": 0.26881720430107525
1069
+ },
1070
+ "per_task": {
1071
+ "LiftPegUpright-v1": {
1072
+ "mean_positive_min_rms_l2_at_1": 0.6652990706417911,
1073
+ "mean_positive_min_rms_l2_at_16": 0.4615508990144506,
1074
+ "mean_positive_min_rms_l2_at_2": 0.5854374359131498,
1075
+ "mean_positive_min_rms_l2_at_4": 0.5226893038103229,
1076
+ "mean_positive_min_rms_l2_at_8": 0.48997738634140725,
1077
+ "median_positive_min_rms_l2_at_1": 0.7428401042373605,
1078
+ "median_positive_min_rms_l2_at_16": 0.3727982242155201,
1079
+ "median_positive_min_rms_l2_at_2": 0.5568482203626711,
1080
+ "median_positive_min_rms_l2_at_4": 0.5179818449839909,
1081
+ "median_positive_min_rms_l2_at_8": 0.45945295310145606,
1082
+ "negative_near_at_16_thr_0p05": 0.0,
1083
+ "negative_near_at_16_thr_0p1": 0.0,
1084
+ "negative_near_at_16_thr_0p2": 0.0,
1085
+ "negative_near_at_16_thr_0p4": 0.375,
1086
+ "negative_near_at_1_thr_0p05": 0.0,
1087
+ "negative_near_at_1_thr_0p1": 0.0,
1088
+ "negative_near_at_1_thr_0p2": 0.0,
1089
+ "negative_near_at_1_thr_0p4": 0.0,
1090
+ "negative_near_at_2_thr_0p05": 0.0,
1091
+ "negative_near_at_2_thr_0p1": 0.0,
1092
+ "negative_near_at_2_thr_0p2": 0.0,
1093
+ "negative_near_at_2_thr_0p4": 0.0,
1094
+ "negative_near_at_4_thr_0p05": 0.0,
1095
+ "negative_near_at_4_thr_0p1": 0.0,
1096
+ "negative_near_at_4_thr_0p2": 0.0,
1097
+ "negative_near_at_4_thr_0p4": 0.125,
1098
+ "negative_near_at_8_thr_0p05": 0.0,
1099
+ "negative_near_at_8_thr_0p1": 0.0,
1100
+ "negative_near_at_8_thr_0p2": 0.0,
1101
+ "negative_near_at_8_thr_0p4": 0.125,
1102
+ "num_groups": 8,
1103
+ "positive_closer_than_negative_rate_at_1": 0.625,
1104
+ "positive_closer_than_negative_rate_at_16": 0.75,
1105
+ "positive_closer_than_negative_rate_at_2": 0.75,
1106
+ "positive_closer_than_negative_rate_at_4": 0.75,
1107
+ "positive_closer_than_negative_rate_at_8": 0.75,
1108
+ "ptr_proxy_at_16_thr_0p05": 0.0,
1109
+ "ptr_proxy_at_16_thr_0p1": 0.0,
1110
+ "ptr_proxy_at_16_thr_0p2": 0.0,
1111
+ "ptr_proxy_at_16_thr_0p4": 0.625,
1112
+ "ptr_proxy_at_1_thr_0p05": 0.0,
1113
+ "ptr_proxy_at_1_thr_0p1": 0.0,
1114
+ "ptr_proxy_at_1_thr_0p2": 0.0,
1115
+ "ptr_proxy_at_1_thr_0p4": 0.25,
1116
+ "ptr_proxy_at_2_thr_0p05": 0.0,
1117
+ "ptr_proxy_at_2_thr_0p1": 0.0,
1118
+ "ptr_proxy_at_2_thr_0p2": 0.0,
1119
+ "ptr_proxy_at_2_thr_0p4": 0.375,
1120
+ "ptr_proxy_at_4_thr_0p05": 0.0,
1121
+ "ptr_proxy_at_4_thr_0p1": 0.0,
1122
+ "ptr_proxy_at_4_thr_0p2": 0.0,
1123
+ "ptr_proxy_at_4_thr_0p4": 0.375,
1124
+ "ptr_proxy_at_8_thr_0p05": 0.0,
1125
+ "ptr_proxy_at_8_thr_0p1": 0.0,
1126
+ "ptr_proxy_at_8_thr_0p2": 0.0,
1127
+ "ptr_proxy_at_8_thr_0p4": 0.5
1128
+ },
1129
+ "PickCube-v1": {
1130
+ "mean_positive_min_rms_l2_at_1": 0.5352755411116884,
1131
+ "mean_positive_min_rms_l2_at_16": 0.348291785397355,
1132
+ "mean_positive_min_rms_l2_at_2": 0.48944488054191204,
1133
+ "mean_positive_min_rms_l2_at_4": 0.4694401047216356,
1134
+ "mean_positive_min_rms_l2_at_8": 0.4307419940726896,
1135
+ "median_positive_min_rms_l2_at_1": 0.4118663208584289,
1136
+ "median_positive_min_rms_l2_at_16": 0.34253052057233363,
1137
+ "median_positive_min_rms_l2_at_2": 0.4118663208584289,
1138
+ "median_positive_min_rms_l2_at_4": 0.3539004456251059,
1139
+ "median_positive_min_rms_l2_at_8": 0.3539004456251059,
1140
+ "negative_near_at_16_thr_0p05": 0.0,
1141
+ "negative_near_at_16_thr_0p1": 0.0,
1142
+ "negative_near_at_16_thr_0p2": 0.0,
1143
+ "negative_near_at_16_thr_0p4": 0.3333333333333333,
1144
+ "negative_near_at_1_thr_0p05": 0.0,
1145
+ "negative_near_at_1_thr_0p1": 0.0,
1146
+ "negative_near_at_1_thr_0p2": 0.0,
1147
+ "negative_near_at_1_thr_0p4": 0.0,
1148
+ "negative_near_at_2_thr_0p05": 0.0,
1149
+ "negative_near_at_2_thr_0p1": 0.0,
1150
+ "negative_near_at_2_thr_0p2": 0.0,
1151
+ "negative_near_at_2_thr_0p4": 0.0,
1152
+ "negative_near_at_4_thr_0p05": 0.0,
1153
+ "negative_near_at_4_thr_0p1": 0.0,
1154
+ "negative_near_at_4_thr_0p2": 0.0,
1155
+ "negative_near_at_4_thr_0p4": 0.0,
1156
+ "negative_near_at_8_thr_0p05": 0.0,
1157
+ "negative_near_at_8_thr_0p1": 0.0,
1158
+ "negative_near_at_8_thr_0p2": 0.0,
1159
+ "negative_near_at_8_thr_0p4": 0.0,
1160
+ "num_groups": 3,
1161
+ "positive_closer_than_negative_rate_at_1": 1.0,
1162
+ "positive_closer_than_negative_rate_at_16": 1.0,
1163
+ "positive_closer_than_negative_rate_at_2": 1.0,
1164
+ "positive_closer_than_negative_rate_at_4": 1.0,
1165
+ "positive_closer_than_negative_rate_at_8": 1.0,
1166
+ "ptr_proxy_at_16_thr_0p05": 0.0,
1167
+ "ptr_proxy_at_16_thr_0p1": 0.0,
1168
+ "ptr_proxy_at_16_thr_0p2": 0.0,
1169
+ "ptr_proxy_at_16_thr_0p4": 0.6666666666666666,
1170
+ "ptr_proxy_at_1_thr_0p05": 0.0,
1171
+ "ptr_proxy_at_1_thr_0p1": 0.0,
1172
+ "ptr_proxy_at_1_thr_0p2": 0.0,
1173
+ "ptr_proxy_at_1_thr_0p4": 0.3333333333333333,
1174
+ "ptr_proxy_at_2_thr_0p05": 0.0,
1175
+ "ptr_proxy_at_2_thr_0p1": 0.0,
1176
+ "ptr_proxy_at_2_thr_0p2": 0.0,
1177
+ "ptr_proxy_at_2_thr_0p4": 0.3333333333333333,
1178
+ "ptr_proxy_at_4_thr_0p05": 0.0,
1179
+ "ptr_proxy_at_4_thr_0p1": 0.0,
1180
+ "ptr_proxy_at_4_thr_0p2": 0.0,
1181
+ "ptr_proxy_at_4_thr_0p4": 0.6666666666666666,
1182
+ "ptr_proxy_at_8_thr_0p05": 0.0,
1183
+ "ptr_proxy_at_8_thr_0p1": 0.0,
1184
+ "ptr_proxy_at_8_thr_0p2": 0.0,
1185
+ "ptr_proxy_at_8_thr_0p4": 0.6666666666666666
1186
+ },
1187
+ "PullCube-v1": {
1188
+ "mean_positive_min_rms_l2_at_1": 1.2324252657354273,
1189
+ "mean_positive_min_rms_l2_at_16": 1.0455950884775953,
1190
+ "mean_positive_min_rms_l2_at_2": 1.1447237634550491,
1191
+ "mean_positive_min_rms_l2_at_4": 1.087397451234658,
1192
+ "mean_positive_min_rms_l2_at_8": 1.062487664602267,
1193
+ "median_positive_min_rms_l2_at_1": 1.2028986105680468,
1194
+ "median_positive_min_rms_l2_at_16": 1.0295972165612155,
1195
+ "median_positive_min_rms_l2_at_2": 1.107077614021399,
1196
+ "median_positive_min_rms_l2_at_4": 1.0295972165612155,
1197
+ "median_positive_min_rms_l2_at_8": 1.0295972165612155,
1198
+ "negative_near_at_16_thr_0p05": 0.0,
1199
+ "negative_near_at_16_thr_0p1": 0.0,
1200
+ "negative_near_at_16_thr_0p2": 0.0,
1201
+ "negative_near_at_16_thr_0p4": 0.0,
1202
+ "negative_near_at_1_thr_0p05": 0.0,
1203
+ "negative_near_at_1_thr_0p1": 0.0,
1204
+ "negative_near_at_1_thr_0p2": 0.0,
1205
+ "negative_near_at_1_thr_0p4": 0.0,
1206
+ "negative_near_at_2_thr_0p05": 0.0,
1207
+ "negative_near_at_2_thr_0p1": 0.0,
1208
+ "negative_near_at_2_thr_0p2": 0.0,
1209
+ "negative_near_at_2_thr_0p4": 0.0,
1210
+ "negative_near_at_4_thr_0p05": 0.0,
1211
+ "negative_near_at_4_thr_0p1": 0.0,
1212
+ "negative_near_at_4_thr_0p2": 0.0,
1213
+ "negative_near_at_4_thr_0p4": 0.0,
1214
+ "negative_near_at_8_thr_0p05": 0.0,
1215
+ "negative_near_at_8_thr_0p1": 0.0,
1216
+ "negative_near_at_8_thr_0p2": 0.0,
1217
+ "negative_near_at_8_thr_0p4": 0.0,
1218
+ "num_groups": 51,
1219
+ "positive_closer_than_negative_rate_at_1": 0.525,
1220
+ "positive_closer_than_negative_rate_at_16": 0.5,
1221
+ "positive_closer_than_negative_rate_at_2": 0.475,
1222
+ "positive_closer_than_negative_rate_at_4": 0.475,
1223
+ "positive_closer_than_negative_rate_at_8": 0.5,
1224
+ "ptr_proxy_at_16_thr_0p05": 0.0,
1225
+ "ptr_proxy_at_16_thr_0p1": 0.0,
1226
+ "ptr_proxy_at_16_thr_0p2": 0.0,
1227
+ "ptr_proxy_at_16_thr_0p4": 0.0,
1228
+ "ptr_proxy_at_1_thr_0p05": 0.0,
1229
+ "ptr_proxy_at_1_thr_0p1": 0.0,
1230
+ "ptr_proxy_at_1_thr_0p2": 0.0,
1231
+ "ptr_proxy_at_1_thr_0p4": 0.0,
1232
+ "ptr_proxy_at_2_thr_0p05": 0.0,
1233
+ "ptr_proxy_at_2_thr_0p1": 0.0,
1234
+ "ptr_proxy_at_2_thr_0p2": 0.0,
1235
+ "ptr_proxy_at_2_thr_0p4": 0.0,
1236
+ "ptr_proxy_at_4_thr_0p05": 0.0,
1237
+ "ptr_proxy_at_4_thr_0p1": 0.0,
1238
+ "ptr_proxy_at_4_thr_0p2": 0.0,
1239
+ "ptr_proxy_at_4_thr_0p4": 0.0,
1240
+ "ptr_proxy_at_8_thr_0p05": 0.0,
1241
+ "ptr_proxy_at_8_thr_0p1": 0.0,
1242
+ "ptr_proxy_at_8_thr_0p2": 0.0,
1243
+ "ptr_proxy_at_8_thr_0p4": 0.0
1244
+ },
1245
+ "PushCube-v1": {
1246
+ "mean_positive_min_rms_l2_at_1": 0.5493684696155321,
1247
+ "mean_positive_min_rms_l2_at_16": 0.43658891954451545,
1248
+ "mean_positive_min_rms_l2_at_2": 0.5410096641632369,
1249
+ "mean_positive_min_rms_l2_at_4": 0.5060239668653957,
1250
+ "mean_positive_min_rms_l2_at_8": 0.47113031638079433,
1251
+ "median_positive_min_rms_l2_at_1": 0.5726710695285063,
1252
+ "median_positive_min_rms_l2_at_16": 0.4389513819081014,
1253
+ "median_positive_min_rms_l2_at_2": 0.5660947957301906,
1254
+ "median_positive_min_rms_l2_at_4": 0.48496433246627585,
1255
+ "median_positive_min_rms_l2_at_8": 0.4672047983629472,
1256
+ "negative_near_at_16_thr_0p05": 0.0,
1257
+ "negative_near_at_16_thr_0p1": 0.0,
1258
+ "negative_near_at_16_thr_0p2": 0.0,
1259
+ "negative_near_at_16_thr_0p4": 0.125,
1260
+ "negative_near_at_1_thr_0p05": 0.0,
1261
+ "negative_near_at_1_thr_0p1": 0.0,
1262
+ "negative_near_at_1_thr_0p2": 0.0,
1263
+ "negative_near_at_1_thr_0p4": 0.0,
1264
+ "negative_near_at_2_thr_0p05": 0.0,
1265
+ "negative_near_at_2_thr_0p1": 0.0,
1266
+ "negative_near_at_2_thr_0p2": 0.0,
1267
+ "negative_near_at_2_thr_0p4": 0.0,
1268
+ "negative_near_at_4_thr_0p05": 0.0,
1269
+ "negative_near_at_4_thr_0p1": 0.0,
1270
+ "negative_near_at_4_thr_0p2": 0.0,
1271
+ "negative_near_at_4_thr_0p4": 0.0,
1272
+ "negative_near_at_8_thr_0p05": 0.0,
1273
+ "negative_near_at_8_thr_0p1": 0.0,
1274
+ "negative_near_at_8_thr_0p2": 0.0,
1275
+ "negative_near_at_8_thr_0p4": 0.125,
1276
+ "num_groups": 15,
1277
+ "positive_closer_than_negative_rate_at_1": 0.875,
1278
+ "positive_closer_than_negative_rate_at_16": 0.875,
1279
+ "positive_closer_than_negative_rate_at_2": 0.875,
1280
+ "positive_closer_than_negative_rate_at_4": 0.75,
1281
+ "positive_closer_than_negative_rate_at_8": 0.875,
1282
+ "ptr_proxy_at_16_thr_0p05": 0.0,
1283
+ "ptr_proxy_at_16_thr_0p1": 0.0,
1284
+ "ptr_proxy_at_16_thr_0p2": 0.0,
1285
+ "ptr_proxy_at_16_thr_0p4": 0.4,
1286
+ "ptr_proxy_at_1_thr_0p05": 0.0,
1287
+ "ptr_proxy_at_1_thr_0p1": 0.0,
1288
+ "ptr_proxy_at_1_thr_0p2": 0.0,
1289
+ "ptr_proxy_at_1_thr_0p4": 0.26666666666666666,
1290
+ "ptr_proxy_at_2_thr_0p05": 0.0,
1291
+ "ptr_proxy_at_2_thr_0p1": 0.0,
1292
+ "ptr_proxy_at_2_thr_0p2": 0.0,
1293
+ "ptr_proxy_at_2_thr_0p4": 0.26666666666666666,
1294
+ "ptr_proxy_at_4_thr_0p05": 0.0,
1295
+ "ptr_proxy_at_4_thr_0p1": 0.0,
1296
+ "ptr_proxy_at_4_thr_0p2": 0.0,
1297
+ "ptr_proxy_at_4_thr_0p4": 0.3333333333333333,
1298
+ "ptr_proxy_at_8_thr_0p05": 0.0,
1299
+ "ptr_proxy_at_8_thr_0p1": 0.0,
1300
+ "ptr_proxy_at_8_thr_0p2": 0.0,
1301
+ "ptr_proxy_at_8_thr_0p4": 0.4
1302
+ },
1303
+ "StackCube-v1": {
1304
+ "mean_positive_min_rms_l2_at_1": 0.47021527050197387,
1305
+ "mean_positive_min_rms_l2_at_16": 0.34517675125711517,
1306
+ "mean_positive_min_rms_l2_at_2": 0.4205777525841578,
1307
+ "mean_positive_min_rms_l2_at_4": 0.3724074079666572,
1308
+ "mean_positive_min_rms_l2_at_8": 0.3542953641709553,
1309
+ "median_positive_min_rms_l2_at_1": 0.429235814788128,
1310
+ "median_positive_min_rms_l2_at_16": 0.2926764124127478,
1311
+ "median_positive_min_rms_l2_at_2": 0.39330366987273946,
1312
+ "median_positive_min_rms_l2_at_4": 0.3422700055023292,
1313
+ "median_positive_min_rms_l2_at_8": 0.31034023684182843,
1314
+ "negative_near_at_16_thr_0p05": 0.0,
1315
+ "negative_near_at_16_thr_0p1": 0.0,
1316
+ "negative_near_at_16_thr_0p2": 0.0,
1317
+ "negative_near_at_16_thr_0p4": 0.4375,
1318
+ "negative_near_at_1_thr_0p05": 0.0,
1319
+ "negative_near_at_1_thr_0p1": 0.0,
1320
+ "negative_near_at_1_thr_0p2": 0.0,
1321
+ "negative_near_at_1_thr_0p4": 0.125,
1322
+ "negative_near_at_2_thr_0p05": 0.0,
1323
+ "negative_near_at_2_thr_0p1": 0.0,
1324
+ "negative_near_at_2_thr_0p2": 0.0,
1325
+ "negative_near_at_2_thr_0p4": 0.1875,
1326
+ "negative_near_at_4_thr_0p05": 0.0,
1327
+ "negative_near_at_4_thr_0p1": 0.0,
1328
+ "negative_near_at_4_thr_0p2": 0.0,
1329
+ "negative_near_at_4_thr_0p4": 0.375,
1330
+ "negative_near_at_8_thr_0p05": 0.0,
1331
+ "negative_near_at_8_thr_0p1": 0.0,
1332
+ "negative_near_at_8_thr_0p2": 0.0,
1333
+ "negative_near_at_8_thr_0p4": 0.375,
1334
+ "num_groups": 16,
1335
+ "positive_closer_than_negative_rate_at_1": 0.875,
1336
+ "positive_closer_than_negative_rate_at_16": 0.875,
1337
+ "positive_closer_than_negative_rate_at_2": 0.8125,
1338
+ "positive_closer_than_negative_rate_at_4": 0.875,
1339
+ "positive_closer_than_negative_rate_at_8": 0.875,
1340
+ "ptr_proxy_at_16_thr_0p05": 0.0,
1341
+ "ptr_proxy_at_16_thr_0p1": 0.0,
1342
+ "ptr_proxy_at_16_thr_0p2": 0.0625,
1343
+ "ptr_proxy_at_16_thr_0p4": 0.875,
1344
+ "ptr_proxy_at_1_thr_0p05": 0.0,
1345
+ "ptr_proxy_at_1_thr_0p1": 0.0,
1346
+ "ptr_proxy_at_1_thr_0p2": 0.0,
1347
+ "ptr_proxy_at_1_thr_0p4": 0.3125,
1348
+ "ptr_proxy_at_2_thr_0p05": 0.0,
1349
+ "ptr_proxy_at_2_thr_0p1": 0.0,
1350
+ "ptr_proxy_at_2_thr_0p2": 0.0,
1351
+ "ptr_proxy_at_2_thr_0p4": 0.5,
1352
+ "ptr_proxy_at_4_thr_0p05": 0.0,
1353
+ "ptr_proxy_at_4_thr_0p1": 0.0,
1354
+ "ptr_proxy_at_4_thr_0p2": 0.0625,
1355
+ "ptr_proxy_at_4_thr_0p4": 0.8125,
1356
+ "ptr_proxy_at_8_thr_0p05": 0.0,
1357
+ "ptr_proxy_at_8_thr_0p1": 0.0,
1358
+ "ptr_proxy_at_8_thr_0p2": 0.0625,
1359
+ "ptr_proxy_at_8_thr_0p4": 0.8125
1360
+ }
1361
+ },
1362
+ "report_type": "positive_tangent_spline_flow_generator_eval",
1363
+ "source": "results/generator_v2_positive_tangent_spline_flow_noise0p5_eval.json",
1364
+ "sweep_best": {
1365
+ "checkpoint": "results/generator_v2_positive_tangent_spline_flow_noise0p5.pt",
1366
+ "code_dim": 21,
1367
+ "epochs": 300,
1368
+ "final_flow_mse": 0.30624499519002657,
1369
+ "mean_positive_min_rms_l2_at_16": 0.7541321921929743,
1370
+ "negative_near_at_16_thr_0p2": 0.0,
1371
+ "noise_scale": 0.5,
1372
+ "num_val_groups_with_positive": 93,
1373
+ "path": "results/generator_v2_positive_tangent_spline_flow_noise0p5_eval.json",
1374
+ "positive_closer_than_negative_rate_at_16": 0.6666666666666666,
1375
+ "ptr_proxy_at_16_thr_0p2": 0.010752688172043012,
1376
+ "ptr_proxy_at_16_thr_0p4": 0.2903225806451613,
1377
+ "sample_steps": 16
1378
+ },
1379
+ "sweep_summary": "results/generator_v2_positive_tangent_spline_flow_sweep_summary.json",
1380
+ "targets": "/lustre09/project/6037638/knguy52/vla/results/generator_v2_positive_tangent_targets.json",
1381
+ "train_history": [
1382
+ {
1383
+ "epoch": 1.0,
1384
+ "flow_mse": 1.0508837910844806
1385
+ },
1386
+ {
1387
+ "epoch": 30.0,
1388
+ "flow_mse": 0.49279166218235415
1389
+ },
1390
+ {
1391
+ "epoch": 60.0,
1392
+ "flow_mse": 0.4238453272587071
1393
+ },
1394
+ {
1395
+ "epoch": 90.0,
1396
+ "flow_mse": 0.3865130779042666
1397
+ },
1398
+ {
1399
+ "epoch": 120.0,
1400
+ "flow_mse": 0.35950159021530403
1401
+ },
1402
+ {
1403
+ "epoch": 150.0,
1404
+ "flow_mse": 0.34672712841893677
1405
+ },
1406
+ {
1407
+ "epoch": 180.0,
1408
+ "flow_mse": 0.3311085788554859
1409
+ },
1410
+ {
1411
+ "epoch": 210.0,
1412
+ "flow_mse": 0.3188852406602869
1413
+ },
1414
+ {
1415
+ "epoch": 240.0,
1416
+ "flow_mse": 0.31515845153885014
1417
+ },
1418
+ {
1419
+ "epoch": 270.0,
1420
+ "flow_mse": 0.3083828923499246
1421
+ },
1422
+ {
1423
+ "epoch": 300.0,
1424
+ "flow_mse": 0.30624499519002657
1425
+ }
1426
+ ]
1427
+ },
1428
+ "generator_v2_support_proxy": {
1429
+ "diversity_weight": 0.25,
1430
+ "label_counts": {
1431
+ "negative": 35225,
1432
+ "neutral": 6310,
1433
+ "positive": 1560
1434
+ },
1435
+ "metric_scope": "offline_support_proxy",
1436
+ "missing": false,
1437
+ "note": "PTR proxy measures whether train-only positive tangent memory proposals fall within an RMS-L2 threshold of a hidden heldout positive tangent.",
1438
+ "num_eval_groups": 588,
1439
+ "num_eval_groups_with_positive": 93,
1440
+ "num_examples": 43095,
1441
+ "num_groups": 2873,
1442
+ "num_train_examples": 34275,
1443
+ "num_val_examples": 8820,
1444
+ "num_val_groups": 588,
1445
+ "overall": {
1446
+ "mean_positive_min_rms_l2_at_1": 1.055607769540819,
1447
+ "mean_positive_min_rms_l2_at_16": 0.6388166329321816,
1448
+ "mean_positive_min_rms_l2_at_2": 1.0256634876117046,
1449
+ "mean_positive_min_rms_l2_at_4": 0.9847512434388448,
1450
+ "mean_positive_min_rms_l2_at_8": 0.8578704664000867,
1451
+ "median_positive_min_rms_l2_at_1": 1.177643197167033,
1452
+ "median_positive_min_rms_l2_at_16": 0.4562673849426494,
1453
+ "median_positive_min_rms_l2_at_2": 1.162496389893324,
1454
+ "median_positive_min_rms_l2_at_4": 1.162496389893324,
1455
+ "median_positive_min_rms_l2_at_8": 0.9623454240414048,
1456
+ "negative_near_at_16_thr_0p05": 0.02666666666666667,
1457
+ "negative_near_at_16_thr_0p1": 0.04,
1458
+ "negative_near_at_16_thr_0p2": 0.08,
1459
+ "negative_near_at_16_thr_0p4": 0.41333333333333333,
1460
+ "negative_near_at_1_thr_0p05": 0.0,
1461
+ "negative_near_at_1_thr_0p1": 0.0,
1462
+ "negative_near_at_1_thr_0p2": 0.0,
1463
+ "negative_near_at_1_thr_0p4": 0.17333333333333334,
1464
+ "negative_near_at_2_thr_0p05": 0.02666666666666667,
1465
+ "negative_near_at_2_thr_0p1": 0.04,
1466
+ "negative_near_at_2_thr_0p2": 0.05333333333333334,
1467
+ "negative_near_at_2_thr_0p4": 0.18666666666666668,
1468
+ "negative_near_at_4_thr_0p05": 0.02666666666666667,
1469
+ "negative_near_at_4_thr_0p1": 0.04,
1470
+ "negative_near_at_4_thr_0p2": 0.06666666666666667,
1471
+ "negative_near_at_4_thr_0p4": 0.22666666666666666,
1472
+ "negative_near_at_8_thr_0p05": 0.02666666666666667,
1473
+ "negative_near_at_8_thr_0p1": 0.04,
1474
+ "negative_near_at_8_thr_0p2": 0.06666666666666667,
1475
+ "negative_near_at_8_thr_0p4": 0.24,
1476
+ "num_groups": 93,
1477
+ "positive_closer_than_negative_rate_at_1": 0.6266666666666667,
1478
+ "positive_closer_than_negative_rate_at_16": 0.6133333333333333,
1479
+ "positive_closer_than_negative_rate_at_2": 0.5733333333333334,
1480
+ "positive_closer_than_negative_rate_at_4": 0.48,
1481
+ "positive_closer_than_negative_rate_at_8": 0.5733333333333334,
1482
+ "ptr_proxy_at_16_thr_0p05": 0.0,
1483
+ "ptr_proxy_at_16_thr_0p1": 0.03225806451612903,
1484
+ "ptr_proxy_at_16_thr_0p2": 0.11827956989247312,
1485
+ "ptr_proxy_at_16_thr_0p4": 0.41935483870967744,
1486
+ "ptr_proxy_at_1_thr_0p05": 0.0,
1487
+ "ptr_proxy_at_1_thr_0p1": 0.0,
1488
+ "ptr_proxy_at_1_thr_0p2": 0.06451612903225806,
1489
+ "ptr_proxy_at_1_thr_0p4": 0.17204301075268819,
1490
+ "ptr_proxy_at_2_thr_0p05": 0.0,
1491
+ "ptr_proxy_at_2_thr_0p1": 0.0,
1492
+ "ptr_proxy_at_2_thr_0p2": 0.07526881720430108,
1493
+ "ptr_proxy_at_2_thr_0p4": 0.1827956989247312,
1494
+ "ptr_proxy_at_4_thr_0p05": 0.0,
1495
+ "ptr_proxy_at_4_thr_0p1": 0.0,
1496
+ "ptr_proxy_at_4_thr_0p2": 0.08602150537634409,
1497
+ "ptr_proxy_at_4_thr_0p4": 0.23655913978494625,
1498
+ "ptr_proxy_at_8_thr_0p05": 0.0,
1499
+ "ptr_proxy_at_8_thr_0p1": 0.010752688172043012,
1500
+ "ptr_proxy_at_8_thr_0p2": 0.08602150537634409,
1501
+ "ptr_proxy_at_8_thr_0p4": 0.2903225806451613
1502
+ },
1503
+ "per_task": {
1504
+ "LiftPegUpright-v1": {
1505
+ "mean_positive_min_rms_l2_at_1": 0.5188334533513074,
1506
+ "mean_positive_min_rms_l2_at_16": 0.25945401505225424,
1507
+ "mean_positive_min_rms_l2_at_2": 0.43561224000018406,
1508
+ "mean_positive_min_rms_l2_at_4": 0.369264296126182,
1509
+ "mean_positive_min_rms_l2_at_8": 0.3655143745152028,
1510
+ "median_positive_min_rms_l2_at_1": 0.5260269258622527,
1511
+ "median_positive_min_rms_l2_at_16": 0.223865352331503,
1512
+ "median_positive_min_rms_l2_at_2": 0.38697873212732525,
1513
+ "median_positive_min_rms_l2_at_4": 0.35699980209002913,
1514
+ "median_positive_min_rms_l2_at_8": 0.3569164419673925,
1515
+ "negative_near_at_16_thr_0p05": 0.25,
1516
+ "negative_near_at_16_thr_0p1": 0.375,
1517
+ "negative_near_at_16_thr_0p2": 0.5,
1518
+ "negative_near_at_16_thr_0p4": 0.75,
1519
+ "negative_near_at_1_thr_0p05": 0.0,
1520
+ "negative_near_at_1_thr_0p1": 0.0,
1521
+ "negative_near_at_1_thr_0p2": 0.0,
1522
+ "negative_near_at_1_thr_0p4": 0.375,
1523
+ "negative_near_at_2_thr_0p05": 0.25,
1524
+ "negative_near_at_2_thr_0p1": 0.375,
1525
+ "negative_near_at_2_thr_0p2": 0.5,
1526
+ "negative_near_at_2_thr_0p4": 0.5,
1527
+ "negative_near_at_4_thr_0p05": 0.25,
1528
+ "negative_near_at_4_thr_0p1": 0.375,
1529
+ "negative_near_at_4_thr_0p2": 0.5,
1530
+ "negative_near_at_4_thr_0p4": 0.5,
1531
+ "negative_near_at_8_thr_0p05": 0.25,
1532
+ "negative_near_at_8_thr_0p1": 0.375,
1533
+ "negative_near_at_8_thr_0p2": 0.5,
1534
+ "negative_near_at_8_thr_0p4": 0.5,
1535
+ "num_groups": 8,
1536
+ "positive_closer_than_negative_rate_at_1": 0.625,
1537
+ "positive_closer_than_negative_rate_at_16": 0.375,
1538
+ "positive_closer_than_negative_rate_at_2": 0.375,
1539
+ "positive_closer_than_negative_rate_at_4": 0.375,
1540
+ "positive_closer_than_negative_rate_at_8": 0.375,
1541
+ "ptr_proxy_at_16_thr_0p05": 0.0,
1542
+ "ptr_proxy_at_16_thr_0p1": 0.0,
1543
+ "ptr_proxy_at_16_thr_0p2": 0.5,
1544
+ "ptr_proxy_at_16_thr_0p4": 0.875,
1545
+ "ptr_proxy_at_1_thr_0p05": 0.0,
1546
+ "ptr_proxy_at_1_thr_0p1": 0.0,
1547
+ "ptr_proxy_at_1_thr_0p2": 0.0,
1548
+ "ptr_proxy_at_1_thr_0p4": 0.375,
1549
+ "ptr_proxy_at_2_thr_0p05": 0.0,
1550
+ "ptr_proxy_at_2_thr_0p1": 0.0,
1551
+ "ptr_proxy_at_2_thr_0p2": 0.125,
1552
+ "ptr_proxy_at_2_thr_0p4": 0.5,
1553
+ "ptr_proxy_at_4_thr_0p05": 0.0,
1554
+ "ptr_proxy_at_4_thr_0p1": 0.0,
1555
+ "ptr_proxy_at_4_thr_0p2": 0.125,
1556
+ "ptr_proxy_at_4_thr_0p4": 0.75,
1557
+ "ptr_proxy_at_8_thr_0p05": 0.0,
1558
+ "ptr_proxy_at_8_thr_0p1": 0.0,
1559
+ "ptr_proxy_at_8_thr_0p2": 0.125,
1560
+ "ptr_proxy_at_8_thr_0p4": 0.75
1561
+ },
1562
+ "PickCube-v1": {
1563
+ "mean_positive_min_rms_l2_at_1": 0.1527557250116031,
1564
+ "mean_positive_min_rms_l2_at_16": 0.0913872145257043,
1565
+ "mean_positive_min_rms_l2_at_2": 0.1527557250116031,
1566
+ "mean_positive_min_rms_l2_at_4": 0.1527557250116031,
1567
+ "mean_positive_min_rms_l2_at_8": 0.13522701233236326,
1568
+ "median_positive_min_rms_l2_at_1": 0.140027269282684,
1569
+ "median_positive_min_rms_l2_at_16": 0.09334415320508621,
1570
+ "median_positive_min_rms_l2_at_2": 0.140027269282684,
1571
+ "median_positive_min_rms_l2_at_4": 0.140027269282684,
1572
+ "median_positive_min_rms_l2_at_8": 0.1383488828218233,
1573
+ "negative_near_at_16_thr_0p05": 0.0,
1574
+ "negative_near_at_16_thr_0p1": 0.0,
1575
+ "negative_near_at_16_thr_0p2": 0.3333333333333333,
1576
+ "negative_near_at_16_thr_0p4": 1.0,
1577
+ "negative_near_at_1_thr_0p05": 0.0,
1578
+ "negative_near_at_1_thr_0p1": 0.0,
1579
+ "negative_near_at_1_thr_0p2": 0.0,
1580
+ "negative_near_at_1_thr_0p4": 1.0,
1581
+ "negative_near_at_2_thr_0p05": 0.0,
1582
+ "negative_near_at_2_thr_0p1": 0.0,
1583
+ "negative_near_at_2_thr_0p2": 0.0,
1584
+ "negative_near_at_2_thr_0p4": 1.0,
1585
+ "negative_near_at_4_thr_0p05": 0.0,
1586
+ "negative_near_at_4_thr_0p1": 0.0,
1587
+ "negative_near_at_4_thr_0p2": 0.0,
1588
+ "negative_near_at_4_thr_0p4": 1.0,
1589
+ "negative_near_at_8_thr_0p05": 0.0,
1590
+ "negative_near_at_8_thr_0p1": 0.0,
1591
+ "negative_near_at_8_thr_0p2": 0.0,
1592
+ "negative_near_at_8_thr_0p4": 1.0,
1593
+ "num_groups": 3,
1594
+ "positive_closer_than_negative_rate_at_1": 1.0,
1595
+ "positive_closer_than_negative_rate_at_16": 1.0,
1596
+ "positive_closer_than_negative_rate_at_2": 1.0,
1597
+ "positive_closer_than_negative_rate_at_4": 1.0,
1598
+ "positive_closer_than_negative_rate_at_8": 1.0,
1599
+ "ptr_proxy_at_16_thr_0p05": 0.0,
1600
+ "ptr_proxy_at_16_thr_0p1": 1.0,
1601
+ "ptr_proxy_at_16_thr_0p2": 1.0,
1602
+ "ptr_proxy_at_16_thr_0p4": 1.0,
1603
+ "ptr_proxy_at_1_thr_0p05": 0.0,
1604
+ "ptr_proxy_at_1_thr_0p1": 0.0,
1605
+ "ptr_proxy_at_1_thr_0p2": 1.0,
1606
+ "ptr_proxy_at_1_thr_0p4": 1.0,
1607
+ "ptr_proxy_at_2_thr_0p05": 0.0,
1608
+ "ptr_proxy_at_2_thr_0p1": 0.0,
1609
+ "ptr_proxy_at_2_thr_0p2": 1.0,
1610
+ "ptr_proxy_at_2_thr_0p4": 1.0,
1611
+ "ptr_proxy_at_4_thr_0p05": 0.0,
1612
+ "ptr_proxy_at_4_thr_0p1": 0.0,
1613
+ "ptr_proxy_at_4_thr_0p2": 1.0,
1614
+ "ptr_proxy_at_4_thr_0p4": 1.0,
1615
+ "ptr_proxy_at_8_thr_0p05": 0.0,
1616
+ "ptr_proxy_at_8_thr_0p1": 0.3333333333333333,
1617
+ "ptr_proxy_at_8_thr_0p2": 1.0,
1618
+ "ptr_proxy_at_8_thr_0p4": 1.0
1619
+ },
1620
+ "PullCube-v1": {
1621
+ "mean_positive_min_rms_l2_at_1": 1.4500636906762299,
1622
+ "mean_positive_min_rms_l2_at_16": 0.9180361491697133,
1623
+ "mean_positive_min_rms_l2_at_2": 1.4094855126482744,
1624
+ "mean_positive_min_rms_l2_at_4": 1.3992445469341475,
1625
+ "mean_positive_min_rms_l2_at_8": 1.2657891336823535,
1626
+ "median_positive_min_rms_l2_at_1": 1.3230790417096545,
1627
+ "median_positive_min_rms_l2_at_16": 0.8794540351911796,
1628
+ "median_positive_min_rms_l2_at_2": 1.3230790417096545,
1629
+ "median_positive_min_rms_l2_at_4": 1.3230790417096545,
1630
+ "median_positive_min_rms_l2_at_8": 1.2437343585769718,
1631
+ "negative_near_at_16_thr_0p05": 0.0,
1632
+ "negative_near_at_16_thr_0p1": 0.0,
1633
+ "negative_near_at_16_thr_0p2": 0.0,
1634
+ "negative_near_at_16_thr_0p4": 0.2,
1635
+ "negative_near_at_1_thr_0p05": 0.0,
1636
+ "negative_near_at_1_thr_0p1": 0.0,
1637
+ "negative_near_at_1_thr_0p2": 0.0,
1638
+ "negative_near_at_1_thr_0p4": 0.0,
1639
+ "negative_near_at_2_thr_0p05": 0.0,
1640
+ "negative_near_at_2_thr_0p1": 0.0,
1641
+ "negative_near_at_2_thr_0p2": 0.0,
1642
+ "negative_near_at_2_thr_0p4": 0.0,
1643
+ "negative_near_at_4_thr_0p05": 0.0,
1644
+ "negative_near_at_4_thr_0p1": 0.0,
1645
+ "negative_near_at_4_thr_0p2": 0.0,
1646
+ "negative_near_at_4_thr_0p4": 0.05,
1647
+ "negative_near_at_8_thr_0p05": 0.0,
1648
+ "negative_near_at_8_thr_0p1": 0.0,
1649
+ "negative_near_at_8_thr_0p2": 0.0,
1650
+ "negative_near_at_8_thr_0p4": 0.05,
1651
+ "num_groups": 51,
1652
+ "positive_closer_than_negative_rate_at_1": 0.45,
1653
+ "positive_closer_than_negative_rate_at_16": 0.475,
1654
+ "positive_closer_than_negative_rate_at_2": 0.4,
1655
+ "positive_closer_than_negative_rate_at_4": 0.325,
1656
+ "positive_closer_than_negative_rate_at_8": 0.4,
1657
+ "ptr_proxy_at_16_thr_0p05": 0.0,
1658
+ "ptr_proxy_at_16_thr_0p1": 0.0,
1659
+ "ptr_proxy_at_16_thr_0p2": 0.0,
1660
+ "ptr_proxy_at_16_thr_0p4": 0.11764705882352941,
1661
+ "ptr_proxy_at_1_thr_0p05": 0.0,
1662
+ "ptr_proxy_at_1_thr_0p1": 0.0,
1663
+ "ptr_proxy_at_1_thr_0p2": 0.0,
1664
+ "ptr_proxy_at_1_thr_0p4": 0.0,
1665
+ "ptr_proxy_at_2_thr_0p05": 0.0,
1666
+ "ptr_proxy_at_2_thr_0p1": 0.0,
1667
+ "ptr_proxy_at_2_thr_0p2": 0.0,
1668
+ "ptr_proxy_at_2_thr_0p4": 0.0,
1669
+ "ptr_proxy_at_4_thr_0p05": 0.0,
1670
+ "ptr_proxy_at_4_thr_0p1": 0.0,
1671
+ "ptr_proxy_at_4_thr_0p2": 0.0,
1672
+ "ptr_proxy_at_4_thr_0p4": 0.0,
1673
+ "ptr_proxy_at_8_thr_0p05": 0.0,
1674
+ "ptr_proxy_at_8_thr_0p1": 0.0,
1675
+ "ptr_proxy_at_8_thr_0p2": 0.0,
1676
+ "ptr_proxy_at_8_thr_0p4": 0.0
1677
+ },
1678
+ "PushCube-v1": {
1679
+ "mean_positive_min_rms_l2_at_1": 0.9064707699171363,
1680
+ "mean_positive_min_rms_l2_at_16": 0.3615433353383019,
1681
+ "mean_positive_min_rms_l2_at_2": 0.9064707699171363,
1682
+ "mean_positive_min_rms_l2_at_4": 0.7267093263681521,
1683
+ "mean_positive_min_rms_l2_at_8": 0.40126563341811106,
1684
+ "median_positive_min_rms_l2_at_1": 0.9048421616538311,
1685
+ "median_positive_min_rms_l2_at_16": 0.3920888552450916,
1686
+ "median_positive_min_rms_l2_at_2": 0.9048421616538311,
1687
+ "median_positive_min_rms_l2_at_4": 0.8181747094278147,
1688
+ "median_positive_min_rms_l2_at_8": 0.3966119363956286,
1689
+ "negative_near_at_16_thr_0p05": 0.0,
1690
+ "negative_near_at_16_thr_0p1": 0.0,
1691
+ "negative_near_at_16_thr_0p2": 0.125,
1692
+ "negative_near_at_16_thr_0p4": 0.25,
1693
+ "negative_near_at_1_thr_0p05": 0.0,
1694
+ "negative_near_at_1_thr_0p1": 0.0,
1695
+ "negative_near_at_1_thr_0p2": 0.0,
1696
+ "negative_near_at_1_thr_0p4": 0.0,
1697
+ "negative_near_at_2_thr_0p05": 0.0,
1698
+ "negative_near_at_2_thr_0p1": 0.0,
1699
+ "negative_near_at_2_thr_0p2": 0.0,
1700
+ "negative_near_at_2_thr_0p4": 0.0,
1701
+ "negative_near_at_4_thr_0p05": 0.0,
1702
+ "negative_near_at_4_thr_0p1": 0.0,
1703
+ "negative_near_at_4_thr_0p2": 0.125,
1704
+ "negative_near_at_4_thr_0p4": 0.125,
1705
+ "negative_near_at_8_thr_0p05": 0.0,
1706
+ "negative_near_at_8_thr_0p1": 0.0,
1707
+ "negative_near_at_8_thr_0p2": 0.125,
1708
+ "negative_near_at_8_thr_0p4": 0.25,
1709
+ "num_groups": 15,
1710
+ "positive_closer_than_negative_rate_at_1": 0.875,
1711
+ "positive_closer_than_negative_rate_at_16": 0.875,
1712
+ "positive_closer_than_negative_rate_at_2": 0.875,
1713
+ "positive_closer_than_negative_rate_at_4": 0.375,
1714
+ "positive_closer_than_negative_rate_at_8": 0.875,
1715
+ "ptr_proxy_at_16_thr_0p05": 0.0,
1716
+ "ptr_proxy_at_16_thr_0p1": 0.0,
1717
+ "ptr_proxy_at_16_thr_0p2": 0.06666666666666667,
1718
+ "ptr_proxy_at_16_thr_0p4": 0.6,
1719
+ "ptr_proxy_at_1_thr_0p05": 0.0,
1720
+ "ptr_proxy_at_1_thr_0p1": 0.0,
1721
+ "ptr_proxy_at_1_thr_0p2": 0.0,
1722
+ "ptr_proxy_at_1_thr_0p4": 0.0,
1723
+ "ptr_proxy_at_2_thr_0p05": 0.0,
1724
+ "ptr_proxy_at_2_thr_0p1": 0.0,
1725
+ "ptr_proxy_at_2_thr_0p2": 0.0,
1726
+ "ptr_proxy_at_2_thr_0p4": 0.0,
1727
+ "ptr_proxy_at_4_thr_0p05": 0.0,
1728
+ "ptr_proxy_at_4_thr_0p1": 0.0,
1729
+ "ptr_proxy_at_4_thr_0p2": 0.06666666666666667,
1730
+ "ptr_proxy_at_4_thr_0p4": 0.2,
1731
+ "ptr_proxy_at_8_thr_0p05": 0.0,
1732
+ "ptr_proxy_at_8_thr_0p1": 0.0,
1733
+ "ptr_proxy_at_8_thr_0p2": 0.06666666666666667,
1734
+ "ptr_proxy_at_8_thr_0p4": 0.5333333333333333
1735
+ },
1736
+ "StackCube-v1": {
1737
+ "mean_positive_min_rms_l2_at_1": 0.3757673745128833,
1738
+ "mean_positive_min_rms_l2_at_16": 0.30107246631048973,
1739
+ "mean_positive_min_rms_l2_at_2": 0.37266978493957653,
1740
+ "mean_positive_min_rms_l2_at_4": 0.36921076916278317,
1741
+ "mean_positive_min_rms_l2_at_8": 0.36737043893860366,
1742
+ "median_positive_min_rms_l2_at_1": 0.3155970042305564,
1743
+ "median_positive_min_rms_l2_at_16": 0.27981834400490646,
1744
+ "median_positive_min_rms_l2_at_2": 0.3155970042305564,
1745
+ "median_positive_min_rms_l2_at_4": 0.3155970042305564,
1746
+ "median_positive_min_rms_l2_at_8": 0.3155970042305564,
1747
+ "negative_near_at_16_thr_0p05": 0.0,
1748
+ "negative_near_at_16_thr_0p1": 0.0,
1749
+ "negative_near_at_16_thr_0p2": 0.0,
1750
+ "negative_near_at_16_thr_0p4": 0.75,
1751
+ "negative_near_at_1_thr_0p05": 0.0,
1752
+ "negative_near_at_1_thr_0p1": 0.0,
1753
+ "negative_near_at_1_thr_0p2": 0.0,
1754
+ "negative_near_at_1_thr_0p4": 0.4375,
1755
+ "negative_near_at_2_thr_0p05": 0.0,
1756
+ "negative_near_at_2_thr_0p1": 0.0,
1757
+ "negative_near_at_2_thr_0p2": 0.0,
1758
+ "negative_near_at_2_thr_0p4": 0.4375,
1759
+ "negative_near_at_4_thr_0p05": 0.0,
1760
+ "negative_near_at_4_thr_0p1": 0.0,
1761
+ "negative_near_at_4_thr_0p2": 0.0,
1762
+ "negative_near_at_4_thr_0p4": 0.4375,
1763
+ "negative_near_at_8_thr_0p05": 0.0,
1764
+ "negative_near_at_8_thr_0p1": 0.0,
1765
+ "negative_near_at_8_thr_0p2": 0.0,
1766
+ "negative_near_at_8_thr_0p4": 0.4375,
1767
+ "num_groups": 16,
1768
+ "positive_closer_than_negative_rate_at_1": 0.875,
1769
+ "positive_closer_than_negative_rate_at_16": 0.875,
1770
+ "positive_closer_than_negative_rate_at_2": 0.875,
1771
+ "positive_closer_than_negative_rate_at_4": 0.875,
1772
+ "positive_closer_than_negative_rate_at_8": 0.875,
1773
+ "ptr_proxy_at_16_thr_0p05": 0.0,
1774
+ "ptr_proxy_at_16_thr_0p1": 0.0,
1775
+ "ptr_proxy_at_16_thr_0p2": 0.1875,
1776
+ "ptr_proxy_at_16_thr_0p4": 0.875,
1777
+ "ptr_proxy_at_1_thr_0p05": 0.0,
1778
+ "ptr_proxy_at_1_thr_0p1": 0.0,
1779
+ "ptr_proxy_at_1_thr_0p2": 0.1875,
1780
+ "ptr_proxy_at_1_thr_0p4": 0.625,
1781
+ "ptr_proxy_at_2_thr_0p05": 0.0,
1782
+ "ptr_proxy_at_2_thr_0p1": 0.0,
1783
+ "ptr_proxy_at_2_thr_0p2": 0.1875,
1784
+ "ptr_proxy_at_2_thr_0p4": 0.625,
1785
+ "ptr_proxy_at_4_thr_0p05": 0.0,
1786
+ "ptr_proxy_at_4_thr_0p1": 0.0,
1787
+ "ptr_proxy_at_4_thr_0p2": 0.1875,
1788
+ "ptr_proxy_at_4_thr_0p4": 0.625,
1789
+ "ptr_proxy_at_8_thr_0p05": 0.0,
1790
+ "ptr_proxy_at_8_thr_0p1": 0.0,
1791
+ "ptr_proxy_at_8_thr_0p2": 0.1875,
1792
+ "ptr_proxy_at_8_thr_0p4": 0.625
1793
+ }
1794
+ },
1795
+ "proposal_count_by_task": {
1796
+ "LiftPegUpright-v1": 16,
1797
+ "PickCube-v1": 15,
1798
+ "PullCube-v1": 16,
1799
+ "PushCube-v1": 16,
1800
+ "StackCube-v1": 16
1801
+ },
1802
+ "report_type": "positive_tangent_memory_generator_eval",
1803
+ "seed": 0,
1804
+ "source": "results/generator_v2_positive_tangent_memory_eval.json",
1805
+ "targets": "/lustre09/project/6037638/knguy52/vla/results/generator_v2_positive_tangent_targets.json",
1806
+ "train_positive_by_task": {
1807
+ "LiftPegUpright-v1": 50,
1808
+ "PickCube-v1": 15,
1809
+ "PullCube-v1": 723,
1810
+ "PushCube-v1": 308,
1811
+ "StackCube-v1": 102
1812
+ },
1813
+ "val_fraction": 0.2
1814
+ },
1815
  "mechanism_gap": {
1816
  "best_clean_vs_direct_same_ckpt": 0.1060869565217391,
1817
  "best_clean_vs_h16": 0.09159420289855075,
workspace/results/paper_analysis.md CHANGED
@@ -1,6 +1,6 @@
1
  # Paper Analysis
2
 
3
- Generated: `2026-07-02T19:30:26+00:00`
4
 
5
  ## Main Seed Statistics
6
 
@@ -233,6 +233,40 @@ Generated: `2026-07-02T19:30:26+00:00`
233
  - Branch success by prefix rank: 38.43%, 37.39%, 36.06%, 33.80%, 27.36%, 26.38%, 25.39%, 23.22%.
234
  - Branch score gain by prefix rank: +0.000, -0.030, -0.054, -0.095, -0.225, -0.247, -0.267, -0.301.
235
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
236
  ## Selection Histograms
237
 
238
  - `same_state_near_miss`: lattice_near_miss=1725 (100.0%)
 
1
  # Paper Analysis
2
 
3
+ Generated: `2026-07-02T20:35:07+00:00`
4
 
5
  ## Main Seed Statistics
6
 
 
233
  - Branch success by prefix rank: 38.43%, 37.39%, 36.06%, 33.80%, 27.36%, 26.38%, 25.39%, 23.22%.
234
  - Branch score gain by prefix rank: +0.000, -0.030, -0.054, -0.095, -0.225, -0.247, -0.267, -0.301.
235
 
236
+ ## Generator V2 Support Proxy
237
+
238
+ - Artifact `results/generator_v2_positive_tangent_memory_eval.json` evaluates train-only positive tangent memory proposals on 93 heldout groups with positive support.
239
+ - Train positives by task: {'LiftPegUpright-v1': 50, 'PickCube-v1': 15, 'PullCube-v1': 723, 'PushCube-v1': 308, 'StackCube-v1': 102}; prototype count by task: {'LiftPegUpright-v1': 16, 'PickCube-v1': 15, 'PullCube-v1': 16, 'PushCube-v1': 16, 'StackCube-v1': 16}.
240
+
241
+ | metric | K1 | K2 | K4 | K8 | K16 |
242
+ |---|---:|---:|---:|---:|---:|
243
+ | PTR proxy @ RMS<=0.10 | 0.00% | 0.00% | 0.00% | 1.08% | 3.23% |
244
+ | PTR proxy @ RMS<=0.20 | 6.45% | 7.53% | 8.60% | 8.60% | 11.83% |
245
+ | Negative-near @ RMS<=0.20 | 0.00% | 5.33% | 6.67% | 6.67% | 8.00% |
246
+ | Positive closer than negative | 62.67% | 57.33% | 48.00% | 57.33% | 61.33% |
247
+
248
+ | task | eval groups | K8 PTR@0.20 | K16 PTR@0.20 | K16 pos<neg |
249
+ |---|---:|---:|---:|---:|
250
+ | LiftPegUpright-v1 | 8 | 12.50% | 50.00% | 37.50% |
251
+ | PickCube-v1 | 3 | 100.00% | 100.00% | 100.00% |
252
+ | PullCube-v1 | 51 | 0.00% | 0.00% | 47.50% |
253
+ | PushCube-v1 | 15 | 6.67% | 6.67% | 87.50% |
254
+ | StackCube-v1 | 16 | 18.75% | 18.75% | 87.50% |
255
+
256
+ ### Trainable CVAE Diagnostic
257
+
258
+ - Artifact `results/generator_v2_positive_tangent_cvae_temp0p5_eval.json` samples from a train-only positive-tangent CVAE trained on 1198 positive targets.
259
+ - Final training snapshot: epoch 300, loss 0.0627, reconstruction MSE 0.0332, KL 1.4739.
260
+
261
+ | generator | heldout groups | K16 PTR@0.20 | K16 PTR@0.40 | K16 neg@0.20 | K16 pos<neg |
262
+ |---|---:|---:|---:|---:|---:|
263
+ | memory | 93 | 11.83% | 41.94% | 8.00% | 61.33% |
264
+ | raw-cvae | 93 | 7.53% | 34.41% | 0.00% | 65.33% |
265
+ | spline-cvae | 93 | 9.68% | 34.41% | 1.33% | 66.67% |
266
+ | spline-flow | 93 | 1.08% | 29.03% | 0.00% | 66.67% |
267
+ | guided-spline-flow | missing | missing | missing | missing | missing |
268
+ - Spline-CVAE source `results/generator_v2_positive_tangent_spline_cvae_eval.json` uses 21D keyframe codes decoded to 16x7 chunks.
269
+
270
  ## Selection Histograms
271
 
272
  - `same_state_near_miss`: lattice_near_miss=1725 (100.0%)
workspace/results/v1_generator_next_submitted.json ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "generated_utc": "2026-07-02T19:13:05.819439+00:00",
3
+ "recommendation": "submit_wider_advantage_weight_support_sweep",
4
+ "submitted": [
5
+ {
6
+ "key": "advw0p5",
7
+ "eval_job": "15069074",
8
+ "summary_job": "15069075"
9
+ },
10
+ {
11
+ "key": "advw4p0",
12
+ "eval_job": "15069076",
13
+ "summary_job": "15069077"
14
+ },
15
+ {
16
+ "key": "policyanchor_advw1p0",
17
+ "eval_job": "15069078",
18
+ "summary_job": "15069079"
19
+ },
20
+ {
21
+ "key": "policyanchor_advw4p0",
22
+ "eval_job": "15069080",
23
+ "summary_job": "15069081"
24
+ },
25
+ {
26
+ "key": "advw2p0_gate0",
27
+ "eval_job": "15069082",
28
+ "summary_job": "15069083"
29
+ },
30
+ {
31
+ "key": "policyanchor_advw2p0_gate0",
32
+ "eval_job": "15069084",
33
+ "summary_job": "15069085"
34
+ }
35
+ ]
36
+ }
workspace/scripts/build_paper_analysis.py CHANGED
@@ -26,6 +26,15 @@ OUT_JSON = RESULTS_DIR / "paper_analysis.json"
26
  OUT_MD = RESULTS_DIR / "paper_analysis.md"
27
  LATEX_TABLES_DIR = Path("latex") / "tables"
28
  OUT_CAR_TABLE = LATEX_TABLES_DIR / "car_decomposition.tex"
 
 
 
 
 
 
 
 
 
29
  CANONICAL_H16_ROLLOUT = Path("/scratch/knguy52/dovla/experiments/dovla_h16_rollout_runs")
30
  FALLBACK_BEST_CLEAN_KEY = "residual_k4_consensus_grid035040045_noopbonus003"
31
  NON_DEPLOYMENT_KEYS = {
@@ -1808,6 +1817,201 @@ def _load_methods() -> dict[str, dict[str, Any]]:
1808
  return methods
1809
 
1810
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1811
  def _headline_metric_label(metric: str) -> str:
1812
  if metric == "mean_candidate_oracle_success_rate":
1813
  return "candidate-oracle"
@@ -2104,6 +2308,104 @@ def _render_markdown(report: dict[str, Any]) -> str:
2104
  ),
2105
  ]
2106
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2107
  lines.extend(
2108
  [
2109
  "",
@@ -2227,9 +2529,49 @@ def build_report() -> dict[str, Any]:
2227
  },
2228
  "best_candidate_oracle_key": oracle_key,
2229
  "best_clean_key": best_clean_key,
 
 
 
 
 
 
 
 
 
 
 
2230
  }
2231
 
2232
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2233
  def _latex_pct(value: float | None) -> str:
2234
  if value is None:
2235
  return "--"
 
26
  OUT_MD = RESULTS_DIR / "paper_analysis.md"
27
  LATEX_TABLES_DIR = Path("latex") / "tables"
28
  OUT_CAR_TABLE = LATEX_TABLES_DIR / "car_decomposition.tex"
29
+ GENERATOR_V2_MEMORY_EVAL = RESULTS_DIR / "generator_v2_positive_tangent_memory_eval.json"
30
+ GENERATOR_V2_CVAE_EVAL = RESULTS_DIR / "generator_v2_positive_tangent_cvae_eval.json"
31
+ GENERATOR_V2_CVAE_SWEEP = RESULTS_DIR / "generator_v2_positive_tangent_cvae_sweep_summary.json"
32
+ GENERATOR_V2_SPLINE_CVAE_EVAL = RESULTS_DIR / "generator_v2_positive_tangent_spline_cvae_eval.json"
33
+ GENERATOR_V2_SPLINE_CVAE_SWEEP = RESULTS_DIR / "generator_v2_positive_tangent_spline_cvae_sweep_summary.json"
34
+ GENERATOR_V2_SPLINE_FLOW_EVAL = RESULTS_DIR / "generator_v2_positive_tangent_spline_flow_eval.json"
35
+ GENERATOR_V2_SPLINE_FLOW_SWEEP = RESULTS_DIR / "generator_v2_positive_tangent_spline_flow_sweep_summary.json"
36
+ GENERATOR_V2_GUIDED_SPLINE_FLOW_EVAL = RESULTS_DIR / "generator_v2_positive_tangent_guided_spline_flow_eval.json"
37
+ GENERATOR_V2_GUIDED_SPLINE_FLOW_SWEEP = RESULTS_DIR / "generator_v2_positive_tangent_guided_spline_flow_sweep_summary.json"
38
  CANONICAL_H16_ROLLOUT = Path("/scratch/knguy52/dovla/experiments/dovla_h16_rollout_runs")
39
  FALLBACK_BEST_CLEAN_KEY = "residual_k4_consensus_grid035040045_noopbonus003"
40
  NON_DEPLOYMENT_KEYS = {
 
1817
  return methods
1818
 
1819
 
1820
+ def _load_generator_v2_support_proxy() -> dict[str, Any]:
1821
+ if not GENERATOR_V2_MEMORY_EVAL.exists():
1822
+ return {"missing": True, "source": str(GENERATOR_V2_MEMORY_EVAL)}
1823
+ data = _load_json(GENERATOR_V2_MEMORY_EVAL)
1824
+ return {
1825
+ "missing": False,
1826
+ "source": str(GENERATOR_V2_MEMORY_EVAL),
1827
+ "report_type": data.get("report_type"),
1828
+ "metric_scope": data.get("metric_scope"),
1829
+ "note": data.get("note"),
1830
+ "targets": data.get("targets"),
1831
+ "seed": data.get("seed"),
1832
+ "val_fraction": data.get("val_fraction"),
1833
+ "diversity_weight": data.get("diversity_weight"),
1834
+ "num_examples": data.get("num_examples"),
1835
+ "num_train_examples": data.get("num_train_examples"),
1836
+ "num_val_examples": data.get("num_val_examples"),
1837
+ "num_groups": data.get("num_groups"),
1838
+ "num_val_groups": data.get("num_val_groups"),
1839
+ "num_eval_groups": data.get("num_eval_groups"),
1840
+ "num_eval_groups_with_positive": data.get("num_eval_groups_with_positive"),
1841
+ "label_counts": data.get("label_counts", {}),
1842
+ "train_positive_by_task": data.get("train_positive_by_task", {}),
1843
+ "proposal_count_by_task": data.get("proposal_count_by_task", {}),
1844
+ "overall": data.get("overall", {}),
1845
+ "per_task": data.get("per_task", {}),
1846
+ }
1847
+
1848
+
1849
+ def _load_generator_v2_cvae_support_proxy() -> dict[str, Any]:
1850
+ source = GENERATOR_V2_CVAE_EVAL
1851
+ sweep_best: dict[str, Any] | None = None
1852
+ if GENERATOR_V2_CVAE_SWEEP.exists():
1853
+ sweep = _load_json(GENERATOR_V2_CVAE_SWEEP)
1854
+ if sweep.get("best", {}).get("path"):
1855
+ candidate = Path(str(sweep["best"]["path"]))
1856
+ if candidate.exists():
1857
+ source = candidate
1858
+ sweep_best = sweep["best"]
1859
+ if not source.exists():
1860
+ return {"missing": True, "source": str(source)}
1861
+ data = _load_json(source)
1862
+ return {
1863
+ "missing": False,
1864
+ "source": str(source),
1865
+ "sweep_summary": str(GENERATOR_V2_CVAE_SWEEP)
1866
+ if GENERATOR_V2_CVAE_SWEEP.exists()
1867
+ else None,
1868
+ "sweep_best": sweep_best,
1869
+ "report_type": data.get("report_type"),
1870
+ "metric_scope": data.get("metric_scope"),
1871
+ "note": data.get("note"),
1872
+ "targets": data.get("targets"),
1873
+ "config": data.get("config", {}),
1874
+ "num_examples": data.get("num_examples"),
1875
+ "num_groups": data.get("num_groups"),
1876
+ "num_train_examples": data.get("num_train_examples"),
1877
+ "num_val_examples": data.get("num_val_examples"),
1878
+ "num_train_positive": data.get("num_train_positive"),
1879
+ "num_val_groups_with_positive": data.get("num_val_groups_with_positive"),
1880
+ "label_counts": data.get("label_counts", {}),
1881
+ "train_positive_by_task": data.get("train_positive_by_task", {}),
1882
+ "overall": data.get("overall", {}),
1883
+ "per_task": data.get("per_task", {}),
1884
+ "train_history": data.get("train_history", []),
1885
+ }
1886
+
1887
+
1888
+ def _load_generator_v2_spline_cvae_support_proxy() -> dict[str, Any]:
1889
+ source = GENERATOR_V2_SPLINE_CVAE_EVAL
1890
+ sweep_best: dict[str, Any] | None = None
1891
+ if GENERATOR_V2_SPLINE_CVAE_SWEEP.exists():
1892
+ sweep = _load_json(GENERATOR_V2_SPLINE_CVAE_SWEEP)
1893
+ if sweep.get("best", {}).get("path"):
1894
+ candidate = Path(str(sweep["best"]["path"]))
1895
+ if candidate.exists():
1896
+ source = candidate
1897
+ sweep_best = sweep["best"]
1898
+ if not source.exists():
1899
+ return {"missing": True, "source": str(source)}
1900
+ data = _load_json(source)
1901
+ return {
1902
+ "missing": False,
1903
+ "source": str(source),
1904
+ "sweep_summary": str(GENERATOR_V2_SPLINE_CVAE_SWEEP)
1905
+ if GENERATOR_V2_SPLINE_CVAE_SWEEP.exists()
1906
+ else None,
1907
+ "sweep_best": sweep_best,
1908
+ "report_type": data.get("report_type"),
1909
+ "metric_scope": data.get("metric_scope"),
1910
+ "note": data.get("note"),
1911
+ "targets": data.get("targets"),
1912
+ "config": data.get("config", {}),
1913
+ "code_dim": data.get("code_dim"),
1914
+ "horizon": data.get("horizon"),
1915
+ "action_dim": data.get("action_dim"),
1916
+ "num_examples": data.get("num_examples"),
1917
+ "num_groups": data.get("num_groups"),
1918
+ "num_train_examples": data.get("num_train_examples"),
1919
+ "num_val_examples": data.get("num_val_examples"),
1920
+ "num_train_positive": data.get("num_train_positive"),
1921
+ "num_val_groups_with_positive": data.get("num_val_groups_with_positive"),
1922
+ "label_counts": data.get("label_counts", {}),
1923
+ "train_positive_by_task": data.get("train_positive_by_task", {}),
1924
+ "overall": data.get("overall", {}),
1925
+ "per_task": data.get("per_task", {}),
1926
+ "train_history": data.get("train_history", []),
1927
+ }
1928
+
1929
+
1930
+ def _load_generator_v2_spline_flow_support_proxy() -> dict[str, Any]:
1931
+ source = GENERATOR_V2_SPLINE_FLOW_EVAL
1932
+ sweep_best: dict[str, Any] | None = None
1933
+ if GENERATOR_V2_SPLINE_FLOW_SWEEP.exists():
1934
+ sweep = _load_json(GENERATOR_V2_SPLINE_FLOW_SWEEP)
1935
+ if sweep.get("best", {}).get("path"):
1936
+ candidate = Path(str(sweep["best"]["path"]))
1937
+ if candidate.exists():
1938
+ source = candidate
1939
+ sweep_best = sweep["best"]
1940
+ if not source.exists():
1941
+ return {"missing": True, "source": str(source)}
1942
+ data = _load_json(source)
1943
+ return {
1944
+ "missing": False,
1945
+ "source": str(source),
1946
+ "sweep_summary": str(GENERATOR_V2_SPLINE_FLOW_SWEEP)
1947
+ if GENERATOR_V2_SPLINE_FLOW_SWEEP.exists()
1948
+ else None,
1949
+ "sweep_best": sweep_best,
1950
+ "report_type": data.get("report_type"),
1951
+ "metric_scope": data.get("metric_scope"),
1952
+ "note": data.get("note"),
1953
+ "targets": data.get("targets"),
1954
+ "config": data.get("config", {}),
1955
+ "code_dim": data.get("code_dim"),
1956
+ "horizon": data.get("horizon"),
1957
+ "action_dim": data.get("action_dim"),
1958
+ "num_examples": data.get("num_examples"),
1959
+ "num_groups": data.get("num_groups"),
1960
+ "num_train_examples": data.get("num_train_examples"),
1961
+ "num_val_examples": data.get("num_val_examples"),
1962
+ "num_train_positive": data.get("num_train_positive"),
1963
+ "num_val_groups_with_positive": data.get("num_val_groups_with_positive"),
1964
+ "overall": data.get("overall", {}),
1965
+ "per_task": data.get("per_task", {}),
1966
+ "train_history": data.get("train_history", []),
1967
+ }
1968
+
1969
+
1970
+ def _load_generator_v2_guided_spline_flow_support_proxy() -> dict[str, Any]:
1971
+ source = GENERATOR_V2_GUIDED_SPLINE_FLOW_EVAL
1972
+ sweep_best: dict[str, Any] | None = None
1973
+ if GENERATOR_V2_GUIDED_SPLINE_FLOW_SWEEP.exists():
1974
+ sweep = _load_json(GENERATOR_V2_GUIDED_SPLINE_FLOW_SWEEP)
1975
+ if sweep.get("best", {}).get("path"):
1976
+ candidate = Path(str(sweep["best"]["path"]))
1977
+ if candidate.exists():
1978
+ source = candidate
1979
+ sweep_best = sweep["best"]
1980
+ if not source.exists():
1981
+ return {"missing": True, "source": str(source)}
1982
+ data = _load_json(source)
1983
+ return {
1984
+ "missing": False,
1985
+ "source": str(source),
1986
+ "sweep_summary": str(GENERATOR_V2_GUIDED_SPLINE_FLOW_SWEEP)
1987
+ if GENERATOR_V2_GUIDED_SPLINE_FLOW_SWEEP.exists()
1988
+ else None,
1989
+ "sweep_best": sweep_best,
1990
+ "report_type": data.get("report_type"),
1991
+ "metric_scope": data.get("metric_scope"),
1992
+ "note": data.get("note"),
1993
+ "targets": data.get("targets"),
1994
+ "config": data.get("config", {}),
1995
+ "code_dim": data.get("code_dim"),
1996
+ "horizon": data.get("horizon"),
1997
+ "action_dim": data.get("action_dim"),
1998
+ "num_examples": data.get("num_examples"),
1999
+ "num_groups": data.get("num_groups"),
2000
+ "num_train_examples": data.get("num_train_examples"),
2001
+ "num_val_examples": data.get("num_val_examples"),
2002
+ "num_train_positive": data.get("num_train_positive"),
2003
+ "num_train_negative": data.get("num_train_negative"),
2004
+ "num_val_groups_with_positive": data.get("num_val_groups_with_positive"),
2005
+ "label_counts": data.get("label_counts", {}),
2006
+ "train_positive_by_task": data.get("train_positive_by_task", {}),
2007
+ "train_negative_by_task": data.get("train_negative_by_task", {}),
2008
+ "overall": data.get("overall", {}),
2009
+ "per_task": data.get("per_task", {}),
2010
+ "train_history": data.get("train_history", []),
2011
+ "utility_train_history": data.get("utility_train_history", []),
2012
+ }
2013
+
2014
+
2015
  def _headline_metric_label(metric: str) -> str:
2016
  if metric == "mean_candidate_oracle_success_rate":
2017
  return "candidate-oracle"
 
2308
  ),
2309
  ]
2310
  )
2311
+ support_proxy = report.get("generator_v2_support_proxy", {})
2312
+ cvae_proxy = report.get("generator_v2_cvae_support_proxy", {})
2313
+ spline_proxy = report.get("generator_v2_spline_cvae_support_proxy", {})
2314
+ flow_proxy = report.get("generator_v2_spline_flow_support_proxy", {})
2315
+ guided_flow_proxy = report.get("generator_v2_guided_spline_flow_support_proxy", {})
2316
+ lines.extend(
2317
+ [
2318
+ "",
2319
+ "## Generator V2 Support Proxy",
2320
+ "",
2321
+ ]
2322
+ )
2323
+ if support_proxy.get("missing", True):
2324
+ lines.append(
2325
+ f"- Pending: `{support_proxy.get('source', GENERATOR_V2_MEMORY_EVAL)}` has not been generated yet."
2326
+ )
2327
+ else:
2328
+ overall = support_proxy.get("overall", {})
2329
+ lines.extend(
2330
+ [
2331
+ (
2332
+ f"- Artifact `{support_proxy['source']}` evaluates train-only positive "
2333
+ f"tangent memory proposals on {support_proxy.get('num_eval_groups_with_positive', 0)} "
2334
+ "heldout groups with positive support."
2335
+ ),
2336
+ (
2337
+ f"- Train positives by task: {support_proxy.get('train_positive_by_task', {})}; "
2338
+ f"prototype count by task: {support_proxy.get('proposal_count_by_task', {})}."
2339
+ ),
2340
+ "",
2341
+ "| metric | K1 | K2 | K4 | K8 | K16 |",
2342
+ "|---|---:|---:|---:|---:|---:|",
2343
+ _support_proxy_row(overall, "PTR proxy @ RMS<=0.10", "ptr_proxy", "0p1"),
2344
+ _support_proxy_row(overall, "PTR proxy @ RMS<=0.20", "ptr_proxy", "0p2"),
2345
+ _support_proxy_row(
2346
+ overall,
2347
+ "Negative-near @ RMS<=0.20",
2348
+ "negative_near",
2349
+ "0p2",
2350
+ ),
2351
+ _support_proxy_row(
2352
+ overall,
2353
+ "Positive closer than negative",
2354
+ "positive_closer_than_negative_rate",
2355
+ None,
2356
+ ),
2357
+ "",
2358
+ "| task | eval groups | K8 PTR@0.20 | K16 PTR@0.20 | K16 pos<neg |",
2359
+ "|---|---:|---:|---:|---:|",
2360
+ ]
2361
+ )
2362
+ for task_id, values in sorted(support_proxy.get("per_task", {}).items()):
2363
+ lines.append(
2364
+ "| {task} | {groups} | {k8} | {k16} | {closer} |".format(
2365
+ task=task_id,
2366
+ groups=int(values.get("num_groups", 0)),
2367
+ k8=_pct(values.get("ptr_proxy_at_8_thr_0p2")),
2368
+ k16=_pct(values.get("ptr_proxy_at_16_thr_0p2")),
2369
+ closer=_pct(values.get("positive_closer_than_negative_rate_at_16")),
2370
+ )
2371
+ )
2372
+ lines.extend(["", "### Trainable CVAE Diagnostic", ""])
2373
+ if cvae_proxy.get("missing", True):
2374
+ lines.append(
2375
+ f"- Pending: `{cvae_proxy.get('source', GENERATOR_V2_CVAE_EVAL)}` has not been generated yet."
2376
+ )
2377
+ else:
2378
+ cvae_history = cvae_proxy.get("train_history", [])
2379
+ last_epoch = cvae_history[-1] if cvae_history else {}
2380
+ lines.extend(
2381
+ [
2382
+ (
2383
+ f"- Artifact `{cvae_proxy['source']}` samples from a train-only "
2384
+ f"positive-tangent CVAE trained on {cvae_proxy.get('num_train_positive', 0)} "
2385
+ "positive targets."
2386
+ ),
2387
+ (
2388
+ f"- Final training snapshot: epoch {int(last_epoch.get('epoch', 0))}, "
2389
+ f"loss {float(last_epoch.get('loss', float('nan'))):.4f}, "
2390
+ f"reconstruction MSE {float(last_epoch.get('reconstruction_mse', float('nan'))):.4f}, "
2391
+ f"KL {float(last_epoch.get('kl', float('nan'))):.4f}."
2392
+ ),
2393
+ "",
2394
+ "| generator | heldout groups | K16 PTR@0.20 | K16 PTR@0.40 | K16 neg@0.20 | K16 pos<neg |",
2395
+ "|---|---:|---:|---:|---:|---:|",
2396
+ _generator_support_compare_row("memory", support_proxy),
2397
+ _generator_support_compare_row("raw-cvae", cvae_proxy),
2398
+ _generator_support_compare_row("spline-cvae", spline_proxy),
2399
+ _generator_support_compare_row("spline-flow", flow_proxy),
2400
+ _generator_support_compare_row("guided-spline-flow", guided_flow_proxy),
2401
+ ]
2402
+ )
2403
+ if not spline_proxy.get("missing", True):
2404
+ lines.append(
2405
+ f"- Spline-CVAE source `{spline_proxy['source']}` uses "
2406
+ f"{spline_proxy.get('code_dim')}D keyframe codes decoded to "
2407
+ f"{spline_proxy.get('horizon')}x{spline_proxy.get('action_dim')} chunks."
2408
+ )
2409
  lines.extend(
2410
  [
2411
  "",
 
2529
  },
2530
  "best_candidate_oracle_key": oracle_key,
2531
  "best_clean_key": best_clean_key,
2532
+ "generator_v2_support_proxy": _load_generator_v2_support_proxy(),
2533
+ "generator_v2_cvae_support_proxy": _load_generator_v2_cvae_support_proxy(),
2534
+ "generator_v2_spline_cvae_support_proxy": (
2535
+ _load_generator_v2_spline_cvae_support_proxy()
2536
+ ),
2537
+ "generator_v2_spline_flow_support_proxy": (
2538
+ _load_generator_v2_spline_flow_support_proxy()
2539
+ ),
2540
+ "generator_v2_guided_spline_flow_support_proxy": (
2541
+ _load_generator_v2_guided_spline_flow_support_proxy()
2542
+ ),
2543
  }
2544
 
2545
 
2546
+ def _generator_support_compare_row(name: str, proxy: dict[str, Any]) -> str:
2547
+ if proxy.get("missing", True):
2548
+ return f"| {name} | missing | missing | missing | missing | missing |"
2549
+ overall = proxy.get("overall", {})
2550
+ return (
2551
+ f"| {name} | {int(proxy.get('num_val_groups_with_positive') or proxy.get('num_eval_groups_with_positive') or 0)} | "
2552
+ f"{_pct(overall.get('ptr_proxy_at_16_thr_0p2'))} | "
2553
+ f"{_pct(overall.get('ptr_proxy_at_16_thr_0p4'))} | "
2554
+ f"{_pct(overall.get('negative_near_at_16_thr_0p2'))} | "
2555
+ f"{_pct(overall.get('positive_closer_than_negative_rate_at_16'))} |"
2556
+ )
2557
+
2558
+
2559
+ def _support_proxy_row(
2560
+ values: dict[str, Any],
2561
+ label: str,
2562
+ metric_prefix: str,
2563
+ threshold_key: str | None,
2564
+ ) -> str:
2565
+ cells = []
2566
+ for k in (1, 2, 4, 8, 16):
2567
+ if threshold_key is None:
2568
+ key = f"{metric_prefix}_at_{k}"
2569
+ else:
2570
+ key = f"{metric_prefix}_at_{k}_thr_{threshold_key}"
2571
+ cells.append(_pct(values.get(key)))
2572
+ return f"| {label} | " + " | ".join(cells) + " |"
2573
+
2574
+
2575
  def _latex_pct(value: float | None) -> str:
2576
  if value is None:
2577
  return "--"
workspace/scripts/eval_positive_tangent_memory.py ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python
2
+ from __future__ import annotations
3
+
4
+ import argparse
5
+ import json
6
+ import sys
7
+ from pathlib import Path
8
+
9
+ PROJECT_ROOT = Path(__file__).resolve().parents[1]
10
+ if str(PROJECT_ROOT) not in sys.path:
11
+ sys.path.insert(0, str(PROJECT_ROOT))
12
+
13
+ from dovla_cil.generation.tangent_memory import ( # noqa: E402
14
+ evaluate_tangent_memory_generator,
15
+ load_tangent_targets,
16
+ )
17
+
18
+
19
+ def main(argv: list[str] | None = None) -> int:
20
+ parser = argparse.ArgumentParser(
21
+ description=(
22
+ "Evaluate a train-only positive-tangent memory generator against heldout "
23
+ "same-state positive tangent support."
24
+ )
25
+ )
26
+ parser.add_argument("--targets", type=Path, required=True)
27
+ parser.add_argument("--out", type=Path, required=True)
28
+ parser.add_argument("--k-values", default="1,2,4,8,16")
29
+ parser.add_argument("--thresholds", default="0.05,0.1,0.2,0.4")
30
+ parser.add_argument("--val-fraction", type=float, default=0.2)
31
+ parser.add_argument("--seed", type=int, default=0)
32
+ parser.add_argument("--diversity-weight", type=float, default=0.25)
33
+ parser.add_argument("--no-groups", action="store_true", help="Drop per-group rows from output.")
34
+ args = parser.parse_args(argv)
35
+
36
+ try:
37
+ k_values = _parse_ints(args.k_values)
38
+ thresholds = _parse_floats(args.thresholds)
39
+ except ValueError as exc:
40
+ parser.error(str(exc))
41
+
42
+ examples = load_tangent_targets(args.targets)
43
+ report = evaluate_tangent_memory_generator(
44
+ examples,
45
+ k_values=k_values,
46
+ thresholds=thresholds,
47
+ val_fraction=args.val_fraction,
48
+ seed=args.seed,
49
+ diversity_weight=args.diversity_weight,
50
+ )
51
+ report["targets"] = str(args.targets)
52
+ if args.no_groups:
53
+ report.pop("groups", None)
54
+ args.out.parent.mkdir(parents=True, exist_ok=True)
55
+ args.out.write_text(json.dumps(report, indent=2) + "\n")
56
+ summary = {
57
+ key: value
58
+ for key, value in report.items()
59
+ if key not in {"groups"}
60
+ }
61
+ print(json.dumps(summary, indent=2))
62
+ print(f"Wrote {args.out}")
63
+ return 0
64
+
65
+
66
+ def _parse_ints(value: str) -> tuple[int, ...]:
67
+ items = tuple(int(item.strip()) for item in value.split(",") if item.strip())
68
+ if not items or any(item <= 0 for item in items):
69
+ raise ValueError("integer list must contain positive values")
70
+ return items
71
+
72
+
73
+ def _parse_floats(value: str) -> tuple[float, ...]:
74
+ items = tuple(float(item.strip()) for item in value.split(",") if item.strip())
75
+ if not items or any(item < 0 for item in items):
76
+ raise ValueError("float list must contain non-negative values")
77
+ return items
78
+
79
+
80
+ if __name__ == "__main__":
81
+ raise SystemExit(main())
workspace/scripts/slurm/eval_positive_tangent_memory.sbatch ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+ #SBATCH --job-name=eval_pos_tangent_mem
3
+ #SBATCH --account=def-yalda
4
+ #SBATCH --time=00:20:00
5
+ #SBATCH --cpus-per-task=1
6
+ #SBATCH --mem=4G
7
+ #SBATCH --output=outputs/hpc/logs/%x_%j.out
8
+ #SBATCH --error=outputs/hpc/logs/%x_%j.err
9
+
10
+ set -euo pipefail
11
+
12
+ PROJECT_DIR="${PROJECT_DIR:-$SLURM_SUBMIT_DIR}"
13
+ PYTHON="${PYTHON:-python3}"
14
+ TARGETS="${TARGETS:-$PROJECT_DIR/results/generator_v2_positive_tangent_targets.json}"
15
+ OUT="${OUT:-$PROJECT_DIR/results/generator_v2_positive_tangent_memory_eval.json}"
16
+ K_VALUES="${K_VALUES:-1,2,4,8,16}"
17
+ THRESHOLDS="${THRESHOLDS:-0.05,0.1,0.2,0.4}"
18
+ VAL_FRACTION="${VAL_FRACTION:-0.2}"
19
+ SEED="${SEED:-0}"
20
+ DIVERSITY_WEIGHT="${DIVERSITY_WEIGHT:-0.25}"
21
+ NO_GROUPS="${NO_GROUPS:-0}"
22
+
23
+ cd "$PROJECT_DIR"
24
+ mkdir -p outputs/hpc/logs "$(dirname "$OUT")"
25
+
26
+ ARGS=(
27
+ --targets "$TARGETS"
28
+ --out "$OUT"
29
+ --k-values "$K_VALUES"
30
+ --thresholds "$THRESHOLDS"
31
+ --val-fraction "$VAL_FRACTION"
32
+ --seed "$SEED"
33
+ --diversity-weight "$DIVERSITY_WEIGHT"
34
+ )
35
+ if [[ "$NO_GROUPS" == "1" ]]; then
36
+ ARGS+=(--no-groups)
37
+ fi
38
+
39
+ "$PYTHON" scripts/eval_positive_tangent_memory.py "${ARGS[@]}"
workspace/scripts/slurm/train_positive_tangent_cvae.sbatch ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+ #SBATCH --job-name=train_pos_tangent_cvae
3
+ #SBATCH --account=def-yalda_gpu
4
+ #SBATCH --nodes=1
5
+ #SBATCH --ntasks=1
6
+ #SBATCH --cpus-per-task=2
7
+ #SBATCH --gres=gpu:nvidia_h100_80gb_hbm3_1g.10gb:1
8
+ #SBATCH --mem=16G
9
+ #SBATCH --time=00:30:00
10
+ #SBATCH --output=outputs/hpc/logs/%x_%j.out
11
+ #SBATCH --error=outputs/hpc/logs/%x_%j.err
12
+
13
+ set -euo pipefail
14
+
15
+ PROJECT_DIR="${PROJECT_DIR:-$SLURM_SUBMIT_DIR}"
16
+ SCRATCH_ROOT="/scratch/$USER/dovla"
17
+ SIF="${SIF:-$SCRATCH_ROOT/containers/pytorch_2.7.1_cuda12.8.sif}"
18
+ PYTHON="${PYTHON:-$SCRATCH_ROOT/envs/maniskill/bin/python}"
19
+ TARGETS="${TARGETS:-$PROJECT_DIR/results/generator_v2_positive_tangent_targets.json}"
20
+ OUT="${OUT:-$PROJECT_DIR/results/generator_v2_positive_tangent_cvae_eval.json}"
21
+ CHECKPOINT="${CHECKPOINT:-$PROJECT_DIR/results/generator_v2_positive_tangent_cvae.pt}"
22
+ K_VALUES="${K_VALUES:-1,2,4,8,16}"
23
+ THRESHOLDS="${THRESHOLDS:-0.05,0.1,0.2,0.4}"
24
+ EPOCHS="${EPOCHS:-300}"
25
+ LATENT_DIM="${LATENT_DIM:-24}"
26
+ HIDDEN_DIM="${HIDDEN_DIM:-256}"
27
+ BATCH_SIZE="${BATCH_SIZE:-128}"
28
+ LR="${LR:-0.001}"
29
+ BETA="${BETA:-0.02}"
30
+ VAL_FRACTION="${VAL_FRACTION:-0.2}"
31
+ SEED="${SEED:-0}"
32
+ TEMPERATURE="${TEMPERATURE:-1.0}"
33
+ DEVICE="${DEVICE:-cuda}"
34
+ NO_GROUPS="${NO_GROUPS:-0}"
35
+
36
+ module load StdEnv/2023 apptainer/1.4.5
37
+ cd "$PROJECT_DIR"
38
+ mkdir -p outputs/hpc/logs "$(dirname "$OUT")" "$(dirname "$CHECKPOINT")"
39
+
40
+ export OMP_NUM_THREADS=1
41
+ export OPENBLAS_NUM_THREADS=1
42
+ export MKL_NUM_THREADS=1
43
+ export DOVLA_TORCH_THREADS=1
44
+
45
+ ARGS=(
46
+ --targets "$TARGETS"
47
+ --out "$OUT"
48
+ --checkpoint "$CHECKPOINT"
49
+ --k-values "$K_VALUES"
50
+ --thresholds "$THRESHOLDS"
51
+ --epochs "$EPOCHS"
52
+ --latent-dim "$LATENT_DIM"
53
+ --hidden-dim "$HIDDEN_DIM"
54
+ --batch-size "$BATCH_SIZE"
55
+ --lr "$LR"
56
+ --beta "$BETA"
57
+ --val-fraction "$VAL_FRACTION"
58
+ --seed "$SEED"
59
+ --temperature "$TEMPERATURE"
60
+ --device "$DEVICE"
61
+ )
62
+ if [[ "$NO_GROUPS" == "1" ]]; then
63
+ ARGS+=(--no-groups)
64
+ fi
65
+
66
+ apptainer exec --nv \
67
+ --env "OMP_NUM_THREADS=1,OPENBLAS_NUM_THREADS=1,MKL_NUM_THREADS=1,DOVLA_TORCH_THREADS=1,PYTHONDONTWRITEBYTECODE=1" \
68
+ -B "$PROJECT_DIR:$PROJECT_DIR" \
69
+ -B "/scratch/$USER:/scratch/$USER" \
70
+ "$SIF" "$PYTHON" scripts/train_positive_tangent_cvae.py "${ARGS[@]}"
workspace/scripts/slurm/train_positive_tangent_cvae_cpu.sbatch ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+ #SBATCH --job-name=train_pos_tangent_cvae_cpu
3
+ #SBATCH --account=def-yalda
4
+ #SBATCH --nodes=1
5
+ #SBATCH --ntasks=1
6
+ #SBATCH --cpus-per-task=4
7
+ #SBATCH --mem=16G
8
+ #SBATCH --time=00:30:00
9
+ #SBATCH --output=outputs/hpc/logs/%x_%j.out
10
+ #SBATCH --error=outputs/hpc/logs/%x_%j.err
11
+
12
+ set -euo pipefail
13
+
14
+ PROJECT_DIR="${PROJECT_DIR:-$SLURM_SUBMIT_DIR}"
15
+ SCRATCH_ROOT="/scratch/$USER/dovla"
16
+ SIF="${SIF:-$SCRATCH_ROOT/containers/pytorch_2.7.1_cuda12.8.sif}"
17
+ PYTHON="${PYTHON:-$SCRATCH_ROOT/envs/maniskill/bin/python}"
18
+ TARGETS="${TARGETS:-$PROJECT_DIR/results/generator_v2_positive_tangent_targets.json}"
19
+ OUT="${OUT:-$PROJECT_DIR/results/generator_v2_positive_tangent_cvae_eval.json}"
20
+ CHECKPOINT="${CHECKPOINT:-$PROJECT_DIR/results/generator_v2_positive_tangent_cvae.pt}"
21
+ K_VALUES="${K_VALUES:-1,2,4,8,16}"
22
+ THRESHOLDS="${THRESHOLDS:-0.05,0.1,0.2,0.4}"
23
+ EPOCHS="${EPOCHS:-300}"
24
+ LATENT_DIM="${LATENT_DIM:-24}"
25
+ HIDDEN_DIM="${HIDDEN_DIM:-256}"
26
+ BATCH_SIZE="${BATCH_SIZE:-128}"
27
+ LR="${LR:-0.001}"
28
+ BETA="${BETA:-0.02}"
29
+ VAL_FRACTION="${VAL_FRACTION:-0.2}"
30
+ SEED="${SEED:-0}"
31
+ TEMPERATURE="${TEMPERATURE:-1.0}"
32
+ NO_GROUPS="${NO_GROUPS:-0}"
33
+
34
+ module load StdEnv/2023 apptainer/1.4.5
35
+ cd "$PROJECT_DIR"
36
+ mkdir -p outputs/hpc/logs "$(dirname "$OUT")" "$(dirname "$CHECKPOINT")"
37
+
38
+ export OMP_NUM_THREADS=1
39
+ export OPENBLAS_NUM_THREADS=1
40
+ export MKL_NUM_THREADS=1
41
+ export DOVLA_TORCH_THREADS=1
42
+
43
+ ARGS=(
44
+ --targets "$TARGETS"
45
+ --out "$OUT"
46
+ --checkpoint "$CHECKPOINT"
47
+ --k-values "$K_VALUES"
48
+ --thresholds "$THRESHOLDS"
49
+ --epochs "$EPOCHS"
50
+ --latent-dim "$LATENT_DIM"
51
+ --hidden-dim "$HIDDEN_DIM"
52
+ --batch-size "$BATCH_SIZE"
53
+ --lr "$LR"
54
+ --beta "$BETA"
55
+ --val-fraction "$VAL_FRACTION"
56
+ --seed "$SEED"
57
+ --temperature "$TEMPERATURE"
58
+ --device cpu
59
+ )
60
+ if [[ "$NO_GROUPS" == "1" ]]; then
61
+ ARGS+=(--no-groups)
62
+ fi
63
+
64
+ apptainer exec \
65
+ --env "OMP_NUM_THREADS=1,OPENBLAS_NUM_THREADS=1,MKL_NUM_THREADS=1,DOVLA_TORCH_THREADS=1,PYTHONDONTWRITEBYTECODE=1" \
66
+ -B "$PROJECT_DIR:$PROJECT_DIR" \
67
+ -B "/scratch/$USER:/scratch/$USER" \
68
+ "$SIF" "$PYTHON" scripts/train_positive_tangent_cvae.py "${ARGS[@]}"
workspace/scripts/summarize_positive_tangent_cvae_sweep.py ADDED
@@ -0,0 +1,125 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python
2
+ from __future__ import annotations
3
+
4
+ import argparse
5
+ import json
6
+ from pathlib import Path
7
+ from typing import Any
8
+
9
+
10
+ def main() -> int:
11
+ parser = argparse.ArgumentParser(
12
+ description="Summarize positive-tangent CVAE support-proxy sweep results."
13
+ )
14
+ parser.add_argument(
15
+ "--glob",
16
+ default="results/generator_v2_positive_tangent_cvae*_eval.json",
17
+ )
18
+ parser.add_argument(
19
+ "--out-json",
20
+ type=Path,
21
+ default=Path("results/generator_v2_positive_tangent_cvae_sweep_summary.json"),
22
+ )
23
+ parser.add_argument(
24
+ "--out-md",
25
+ type=Path,
26
+ default=Path("results/generator_v2_positive_tangent_cvae_sweep_summary.md"),
27
+ )
28
+ args = parser.parse_args()
29
+
30
+ rows = []
31
+ for path in sorted(Path().glob(args.glob)):
32
+ data = json.loads(path.read_text())
33
+ if data.get("report_type") != "positive_tangent_cvae_generator_eval":
34
+ continue
35
+ rows.append(_summarize(path, data))
36
+ rows = sorted(rows, key=_rank_key)
37
+ summary = {
38
+ "num_runs": len(rows),
39
+ "best": rows[0] if rows else None,
40
+ "rows": rows,
41
+ }
42
+ args.out_json.parent.mkdir(parents=True, exist_ok=True)
43
+ args.out_json.write_text(json.dumps(summary, indent=2) + "\n")
44
+ args.out_md.write_text(_render_markdown(summary), encoding="utf-8")
45
+ print(json.dumps(summary, indent=2))
46
+ print(f"Wrote {args.out_json}")
47
+ print(f"Wrote {args.out_md}")
48
+ return 0
49
+
50
+
51
+ def _summarize(path: Path, data: dict[str, Any]) -> dict[str, Any]:
52
+ overall = data.get("overall", {})
53
+ config = data.get("config", {})
54
+ history = data.get("train_history", [])
55
+ final = history[-1] if history else {}
56
+ return {
57
+ "path": str(path),
58
+ "checkpoint": str(path).replace("_eval.json", ".pt"),
59
+ "temperature": config.get("diversity_temperature"),
60
+ "beta": config.get("beta"),
61
+ "latent_dim": config.get("latent_dim"),
62
+ "epochs": config.get("epochs"),
63
+ "num_val_groups_with_positive": data.get("num_val_groups_with_positive"),
64
+ "ptr_proxy_at_16_thr_0p2": overall.get("ptr_proxy_at_16_thr_0p2"),
65
+ "ptr_proxy_at_16_thr_0p4": overall.get("ptr_proxy_at_16_thr_0p4"),
66
+ "negative_near_at_16_thr_0p2": overall.get("negative_near_at_16_thr_0p2"),
67
+ "positive_closer_than_negative_rate_at_16": overall.get(
68
+ "positive_closer_than_negative_rate_at_16"
69
+ ),
70
+ "mean_positive_min_rms_l2_at_16": overall.get("mean_positive_min_rms_l2_at_16"),
71
+ "final_loss": final.get("loss"),
72
+ "final_reconstruction_mse": final.get("reconstruction_mse"),
73
+ "final_kl": final.get("kl"),
74
+ }
75
+
76
+
77
+ def _rank_key(row: dict[str, Any]) -> tuple[float, float, float, float, float]:
78
+ return (
79
+ -float(row.get("ptr_proxy_at_16_thr_0p2") or 0.0),
80
+ -float(row.get("ptr_proxy_at_16_thr_0p4") or 0.0),
81
+ float(row.get("negative_near_at_16_thr_0p2") or 0.0),
82
+ -float(row.get("positive_closer_than_negative_rate_at_16") or 0.0),
83
+ float(row.get("mean_positive_min_rms_l2_at_16") or 1.0e9),
84
+ )
85
+
86
+
87
+ def _render_markdown(summary: dict[str, Any]) -> str:
88
+ lines = [
89
+ "# Positive Tangent CVAE Sweep",
90
+ "",
91
+ "| rank | file | temp | beta | K16 PTR@0.20 | K16 PTR@0.40 | K16 neg@0.20 | K16 pos<neg | mean pos dist | final recon |",
92
+ "|---:|---|---:|---:|---:|---:|---:|---:|---:|---:|",
93
+ ]
94
+ for index, row in enumerate(summary.get("rows", []), start=1):
95
+ lines.append(
96
+ "| {rank} | {file} | {temp} | {beta} | {ptr02} | {ptr04} | {neg02} | {closer} | {dist} | {recon} |".format(
97
+ rank=index,
98
+ file=row["path"],
99
+ temp=_fmt(row.get("temperature")),
100
+ beta=_fmt(row.get("beta")),
101
+ ptr02=_pct(row.get("ptr_proxy_at_16_thr_0p2")),
102
+ ptr04=_pct(row.get("ptr_proxy_at_16_thr_0p4")),
103
+ neg02=_pct(row.get("negative_near_at_16_thr_0p2")),
104
+ closer=_pct(row.get("positive_closer_than_negative_rate_at_16")),
105
+ dist=_fmt(row.get("mean_positive_min_rms_l2_at_16")),
106
+ recon=_fmt(row.get("final_reconstruction_mse")),
107
+ )
108
+ )
109
+ return "\n".join(lines) + "\n"
110
+
111
+
112
+ def _pct(value: Any) -> str:
113
+ if value is None:
114
+ return "n/a"
115
+ return f"{float(value) * 100:.2f}%"
116
+
117
+
118
+ def _fmt(value: Any) -> str:
119
+ if value is None:
120
+ return "n/a"
121
+ return f"{float(value):.4f}"
122
+
123
+
124
+ if __name__ == "__main__":
125
+ raise SystemExit(main())
workspace/scripts/train_positive_tangent_cvae.py ADDED
@@ -0,0 +1,119 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python
2
+ from __future__ import annotations
3
+
4
+ import argparse
5
+ import json
6
+ import sys
7
+ from pathlib import Path
8
+
9
+ PROJECT_ROOT = Path(__file__).resolve().parents[1]
10
+ if str(PROJECT_ROOT) not in sys.path:
11
+ sys.path.insert(0, str(PROJECT_ROOT))
12
+
13
+ from dovla_cil.generation.tangent_cvae import ( # noqa: E402
14
+ TangentCVAEConfig,
15
+ build_tangent_cvae_rows,
16
+ hash_bow,
17
+ train_and_evaluate_tangent_cvae,
18
+ )
19
+
20
+
21
+ def main(argv: list[str] | None = None) -> int:
22
+ parser = argparse.ArgumentParser(
23
+ description=(
24
+ "Train a conditional VAE over measured positive action tangents and "
25
+ "evaluate heldout positive support recall."
26
+ )
27
+ )
28
+ parser.add_argument("--targets", type=Path, required=True)
29
+ parser.add_argument("--out", type=Path, required=True)
30
+ parser.add_argument("--checkpoint", type=Path, required=True)
31
+ parser.add_argument("--k-values", default="1,2,4,8,16")
32
+ parser.add_argument("--thresholds", default="0.05,0.1,0.2,0.4")
33
+ parser.add_argument("--obs-dim", type=int, default=96)
34
+ parser.add_argument("--text-dim", type=int, default=64)
35
+ parser.add_argument("--hidden-dim", type=int, default=256)
36
+ parser.add_argument("--latent-dim", type=int, default=24)
37
+ parser.add_argument("--batch-size", type=int, default=128)
38
+ parser.add_argument("--epochs", type=int, default=300)
39
+ parser.add_argument("--lr", type=float, default=1.0e-3)
40
+ parser.add_argument("--beta", type=float, default=0.02)
41
+ parser.add_argument("--val-fraction", type=float, default=0.2)
42
+ parser.add_argument("--seed", type=int, default=0)
43
+ parser.add_argument("--temperature", type=float, default=1.0)
44
+ parser.add_argument("--device", default="auto")
45
+ parser.add_argument("--no-groups", action="store_true", help="Drop per-group rows from output.")
46
+ args = parser.parse_args(argv)
47
+
48
+ k_values = _parse_ints(args.k_values)
49
+ thresholds = _parse_floats(args.thresholds)
50
+ payload = json.loads(args.targets.read_text())
51
+ targets = list(payload.get("targets", []))
52
+ config = TangentCVAEConfig(
53
+ obs_dim=args.obs_dim,
54
+ text_dim=args.text_dim,
55
+ hidden_dim=args.hidden_dim,
56
+ latent_dim=args.latent_dim,
57
+ batch_size=args.batch_size,
58
+ epochs=args.epochs,
59
+ learning_rate=args.lr,
60
+ beta=args.beta,
61
+ val_fraction=args.val_fraction,
62
+ seed=args.seed,
63
+ diversity_temperature=args.temperature,
64
+ )
65
+ report, artifact = train_and_evaluate_tangent_cvae(
66
+ targets,
67
+ config=config,
68
+ k_values=k_values,
69
+ thresholds=thresholds,
70
+ device=args.device,
71
+ )
72
+ report["targets"] = str(args.targets)
73
+ if args.no_groups:
74
+ report.pop("groups", None)
75
+ args.out.parent.mkdir(parents=True, exist_ok=True)
76
+ args.checkpoint.parent.mkdir(parents=True, exist_ok=True)
77
+ args.out.write_text(json.dumps(report, indent=2) + "\n")
78
+
79
+ try:
80
+ import torch
81
+ except ImportError as exc: # pragma: no cover - handled in train function first
82
+ raise RuntimeError("PyTorch disappeared after training") from exc
83
+ torch.save(artifact, args.checkpoint)
84
+
85
+ summary = {
86
+ key: value
87
+ for key, value in report.items()
88
+ if key not in {"groups"}
89
+ }
90
+ print(json.dumps(summary, indent=2))
91
+ print(f"Wrote {args.out}")
92
+ print(f"Wrote {args.checkpoint}")
93
+ return 0
94
+
95
+
96
+ def _parse_ints(value: str) -> tuple[int, ...]:
97
+ items = tuple(int(item.strip()) for item in value.split(",") if item.strip())
98
+ if not items or any(item <= 0 for item in items):
99
+ raise ValueError("integer list must contain positive values")
100
+ return items
101
+
102
+
103
+ def _parse_floats(value: str) -> tuple[float, ...]:
104
+ items = tuple(float(item.strip()) for item in value.split(",") if item.strip())
105
+ if not items or any(item < 0 for item in items):
106
+ raise ValueError("float list must contain non-negative values")
107
+ return items
108
+
109
+
110
+ __all__ = [
111
+ "TangentCVAEConfig",
112
+ "build_tangent_cvae_rows",
113
+ "hash_bow",
114
+ "main",
115
+ ]
116
+
117
+
118
+ if __name__ == "__main__":
119
+ raise SystemExit(main())