File size: 3,040 Bytes
1357e00
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4ab9bec
 
 
 
1357e00
 
 
 
 
 
 
 
 
4ab9bec
1357e00
4ab9bec
 
 
 
 
 
 
1357e00
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4ab9bec
1357e00
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
---
library_name: pytorch
tags:
  - reinforcement-learning
  - robotics
  - manipulation
  - hand-object-interaction
  - pytorch
license: other
---

# DragMesh-2 Evaluation Checkpoints

This repository contains the PyTorch policy checkpoints used for the
DragMesh-2 main-table evaluation. The release includes seven policy variants
evaluated on seven object-part tasks, for a total of 49 checkpoints.

The corresponding hand-object interaction trajectories are available in the
[DragMesh-2 dataset](https://huggingface.co/datasets/AIGeeksGroup/DragMesh-2).
The referenced objects and actionable parts originate from
[GAPartNet](https://pku-epic.github.io/GAPartNet/); GAPartNet assets are not
included in this model repository.

## Repository layout

```text
checkpoints/
  <variant>/
    object_<object_id>/
      handle_<part_id>/
        policy.pth
model_manifest.jsonl
```

Each path explicitly identifies the evaluated experiment, source object, and
manipulated part. `model_manifest.jsonl` records the normalized checkpoint
path, original relative path, object category, file size, and SHA-256 digest.

## Policy variants

| Name | Variant |
| --- | --- |
| `state` | State-only PPO baseline |
| `history` | Flat-history PPO baseline |
| `gla` | GLA without the auxiliary objective |
| `pica` | PICA without the GLA auxiliary objective (`v2c`) |
| `dragmesh2` | DragMesh-2 PICA policy |
| `gru` | GRU PPO baseline |
| `transformer` | Transformer PPO baseline |

## Evaluation tasks

| Category | Object ID | Part ID |
| --- | --- | --- |
| Dishwasher | `12583` | `handle_1` |
| Microwave | `7310` | `handle_1` |
| StorageFurniture | `45261` | `handle_7` |
| StorageFurniture | `45661` | `handle_3` |
| StorageFurniture | `45936` | `handle_1` |
| StorageFurniture | `46440` | `handle_5` |
| StorageFurniture | `48513` | `handle_2` |

## Checkpoint format

Each `policy.pth` is a PyTorch training checkpoint with these top-level fields:

- `model`: policy state dictionary;
- `optimizer`: optimizer state;
- `running_mean_std`: observation normalization state;
- `reward_mean_std`: reward normalization state;
- `epoch`, `frame`, and `last_mean_rewards`: training metadata;
- `env_state`: serialized environment state when available.

Load checkpoints only in a trusted environment. With PyTorch 2.6 or later,
the checkpoint can be read in weights-only mode by allowlisting the NumPy
scalar types stored in its training metadata:

```python
from pathlib import Path

import numpy as np
import torch

checkpoint_path = Path(
    "checkpoints/dragmesh2/"
    "object_45661/handle_3/policy.pth"
)

safe_globals = [
    np.core.multiarray.scalar,
    np.dtype,
    np.dtypes.Float32DType,
]

with torch.serialization.safe_globals(safe_globals):
    checkpoint = torch.load(
        checkpoint_path,
        map_location="cpu",
        weights_only=True,
    )

policy_state_dict = checkpoint["model"]
```

The policy architecture and observation configuration must match the
corresponding DragMesh-2 experiment when restoring a checkpoint.