Upload geomatch_v2_repro/EVAL_INFO.md with huggingface_hub
Browse files- geomatch_v2_repro/EVAL_INFO.md +48 -23
geomatch_v2_repro/EVAL_INFO.md
CHANGED
|
@@ -1,35 +1,58 @@
|
|
| 1 |
-
# GeoMatch v2 β Reproduction Runs (epoch 50 checkpoints)
|
| 2 |
|
| 3 |
-
**Status: intermediate checkpoints from ongoing training.**
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
|
|
|
|
|
|
|
|
|
| 8 |
|
| 9 |
## Which file is which
|
| 10 |
|
| 11 |
| File | Seed | LR | Batch size | Rationale |
|
| 12 |
|---|---|---|---|---|
|
| 13 |
-
| `
|
| 14 |
-
| `
|
| 15 |
-
| `runC_lr5e-
|
| 16 |
|
| 17 |
All three: Adam optimizer (Ξ²=0.9, 0.99), weight_decay=0, no AMP (FP32), 200 total epochs planned,
|
| 18 |
single-GPU (no DDP), `num_workers=0`.
|
| 19 |
|
| 20 |
-
## Loss/accuracy
|
| 21 |
|
| 22 |
-
| Run | Train loss | Train acc | Val loss | Val acc |
|
| 23 |
-
|---|---|---|---|---|
|
| 24 |
-
| A | 1.690662 | 0.6269 | 1.699793 | 0.5926 |
|
| 25 |
-
|
|
| 26 |
-
|
|
|
|
|
|
|
|
|
|
|
| 27 |
|
| 28 |
**Caveat on val numbers:** the validation set is only 10 objects, so epoch-to-epoch val accuracy is
|
| 29 |
noisy (observed swings of Β±0.05 between adjacent epochs in these runs). Don't read too much into
|
| 30 |
small val differences between runs at a single epoch β training (contact-map) loss/acc is the more
|
| 31 |
stable signal at this stage. Isaac Gym grasp success rate is the metric that actually matters; these
|
| 32 |
-
loss numbers are only a training-health sanity check.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
|
| 34 |
## Model architecture / loading
|
| 35 |
|
|
@@ -74,14 +97,16 @@ GenDexGrasp's split): 48 train objects (YCB + ContactDB); **10 held-out validati
|
|
| 74 |
`ycb+potted_meat_can`, `ycb+tomato_soup_can`. These 10 are the objects to use for Isaac Gym
|
| 75 |
evaluation (unseen at training time), matching the paper's protocol.
|
| 76 |
|
| 77 |
-
##
|
| 78 |
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
|
|
|
|
|
|
| 85 |
|
| 86 |
## Suggested evaluation protocol (matches paper)
|
| 87 |
|
|
|
|
| 1 |
+
# GeoMatch v2 β Reproduction Runs (epoch 50 & 100 checkpoints)
|
| 2 |
|
| 3 |
+
**Status: intermediate checkpoints from ongoing training.** Three parallel training runs launched
|
| 4 |
+
to reproduce the GeoMatch paper's (arXiv:2312.03864) reported Isaac Gym success rates
|
| 5 |
+
(EZGripper 75.0%, Barrett 90.0%, ShadowHand 72.5%). All three runs use the **fixed keypoints**
|
| 6 |
+
dataset (`grasp_gnn_v2`) β see "Bug History" below. Training continues to epoch 200; these
|
| 7 |
+
checkpoints are provided for early/intermediate evaluation, not as final models. Epoch 50
|
| 8 |
+
checkpoints were evaluated at 5-10% Isaac Gym success β see "Eval feedback so far" below for what
|
| 9 |
+
that does and doesn't tell us. Epoch 100 (halfway) checkpoints are now also available for a second
|
| 10 |
+
data point on the success-rate-vs-training-maturity trend.
|
| 11 |
|
| 12 |
## Which file is which
|
| 13 |
|
| 14 |
| File | Seed | LR | Batch size | Rationale |
|
| 15 |
|---|---|---|---|---|
|
| 16 |
+
| `runA_paper_exact_epoch{50,100}.pth` | 42 | 1e-4 | 256 | Exact paper-matching recipe (control) |
|
| 17 |
+
| `runB_seed123_epoch{50,100}.pth` | 123 | 1e-4 | 256 | Same recipe, different seed (init/data-order sensitivity check) |
|
| 18 |
+
| `runC_lr5e-5_bs128_epoch{50,100}.pth` | 7 | 5e-5 | 128 | Half LR, half batch β hedge against batch-size/LR sensitivity |
|
| 19 |
|
| 20 |
All three: Adam optimizer (Ξ²=0.9, 0.99), weight_decay=0, no AMP (FP32), 200 total epochs planned,
|
| 21 |
single-GPU (no DDP), `num_workers=0`.
|
| 22 |
|
| 23 |
+
## Loss/accuracy (as logged during training)
|
| 24 |
|
| 25 |
+
| Run | Epoch | Train loss | Train acc | Val loss | Val acc |
|
| 26 |
+
|---|---|---|---|---|---|
|
| 27 |
+
| A | 50 | 1.690662 | 0.6269 | 1.699793 | 0.5926 |
|
| 28 |
+
| A | 100 | 1.656710 | 0.6666 | 1.670935 | 0.6288 |
|
| 29 |
+
| B | 50 | 1.691613 | 0.6280 | 1.694283 | 0.5801 |
|
| 30 |
+
| B | 100 | 1.659709 | 0.6586 | 1.674850 | 0.6756 |
|
| 31 |
+
| C | 50 | 1.701282 | 0.6126 | 1.713473 | 0.6481 |
|
| 32 |
+
| C | 100 | 1.670215 | 0.6517 | 1.682868 | 0.6043 |
|
| 33 |
|
| 34 |
**Caveat on val numbers:** the validation set is only 10 objects, so epoch-to-epoch val accuracy is
|
| 35 |
noisy (observed swings of Β±0.05 between adjacent epochs in these runs). Don't read too much into
|
| 36 |
small val differences between runs at a single epoch β training (contact-map) loss/acc is the more
|
| 37 |
stable signal at this stage. Isaac Gym grasp success rate is the metric that actually matters; these
|
| 38 |
+
loss numbers are only a training-health sanity check. Train loss/acc is trending steadily better at
|
| 39 |
+
epoch 100 vs. 50 for all three runs (e.g. Run A train acc 0.627 β 0.667), consistent with continued
|
| 40 |
+
learning, not a plateau.
|
| 41 |
+
|
| 42 |
+
## Eval feedback so far (epoch 50 β 5-10% Isaac Gym success)
|
| 43 |
+
|
| 44 |
+
Epoch-50 checkpoints were evaluated at only 5-10% Isaac Gym success, well below paper targets. This
|
| 45 |
+
was investigated jointly and resolved: the eval-side contact-refinement step (`refine_grasps_cmap_adam.py`,
|
| 46 |
+
one Adam step at `learning_rate=0.05` on the full pose via `CMapAdam`, applied before
|
| 47 |
+
`run_grasp_test.py`) is **confirmed correctly implemented and was already applied** to those 5-10%
|
| 48 |
+
results β this matches the paper's Appendix C description exactly ("Isaac Gym scripts used as is,
|
| 49 |
+
aside from the one Adam step of force closure... step size 0.05"). So the low success rate is **not**
|
| 50 |
+
a pipeline bug. The most likely explanation is genuine undertraining: the paper's own Table 2 shows
|
| 51 |
+
even the easier single-embodiment ablation needs the full 200 epochs to reach 40-70% success, and
|
| 52 |
+
epoch 50 is only 25% through this schedule. **Please re-run the same 40-grasps-per-gripper eval on
|
| 53 |
+
these epoch-100 checkpoints and report success rate per gripper** β if it climbs meaningfully from
|
| 54 |
+
the epoch-50 numbers, that confirms training maturity (not pipeline correctness) is the operative
|
| 55 |
+
variable, and epoch 200 should be worth waiting for.
|
| 56 |
|
| 57 |
## Model architecture / loading
|
| 58 |
|
|
|
|
| 97 |
`ycb+potted_meat_can`, `ycb+tomato_soup_can`. These 10 are the objects to use for Isaac Gym
|
| 98 |
evaluation (unseen at training time), matching the paper's protocol.
|
| 99 |
|
| 100 |
+
## Contact-refinement step β resolved, no action needed
|
| 101 |
|
| 102 |
+
Earlier concern: `generate_grasps_for_obj.py` in this repo stops at the raw SciPy TRF IK result
|
| 103 |
+
with no further refinement, which looked like a possible gap. This is **not a bug** β per the
|
| 104 |
+
paper's Appendix C, the 5mm figure is a pre-grasp keypoint offset applied *before* IK (already
|
| 105 |
+
correctly implemented here), and the separate one-Adam-step force-closure refinement
|
| 106 |
+
(`learning_rate=0.05`) is applied by the **Isaac Gym evaluation harness itself**, reused as-is from
|
| 107 |
+
GenDexGrasp per the paper's own wording. That refinement already exists and runs correctly on the
|
| 108 |
+
eval side (`refine_grasps_cmap_adam.py` β `bridge_to_gendexgrasp.py` β `run_grasp_test.py`,
|
| 109 |
+
confirmed by direct code read). No changes needed in this repo's `generate_grasps_for_obj.py`.
|
| 110 |
|
| 111 |
## Suggested evaluation protocol (matches paper)
|
| 112 |
|