Tactile-JEPA: DECO-50 — policy
One shared JEPA pretrain (seed 42) and the selected downstream checkpoint(s) from the main Tactile-JEPA protocol. No baselines or masking ablations are included.
2,124 raw taxels grouped into 528 nodes, five channels, three-frame encoder input. Policy uses tactile features, visual features, proprioception and condition; predicts 12 hand-joint action components over 16 steps.
Selected checkpoints
| Task | Metric | Selected checkpoint value | Head seed |
|---|---|---|---|
| policy | Normalized action RMSE | 0.4581766129 | 17 |
These are individual checkpoints selected using the saved test metrics, not the multi-seed means reported in the paper. Selection from test results makes these scores descriptive of the chosen release; they are not a fresh, unbiased evaluation. The within-run checkpoint is the saved checkpoint referenced by the evaluation artifact (best validation checkpoint).
Files
pretrain/model.ckpt: original SSL checkpoint, including context encoder, EMA target encoder, predictor and saved training state.pretrain/encoder.safetensors: EMA target encoder weights;target_encoder.prefix removed.pretrain/training_config.yaml: saved pretraining configuration with server paths replaced by portable placeholders.downstream/<task>/model.ckpt: original evaluated downstream checkpoint.downstream/<task>/model.safetensors: complete downstream model state; original parameter names preserved.downstream/<task>/training_config.yaml: saved downstream configuration.downstream/<task>/metrics.json: metrics, seeds, checkpoint hashes, source run identifiers and encoder-pair verification.SHA256SUMS: checksums for the released files.
Download and load weights
from huggingface_hub import snapshot_download
from safetensors.torch import load_file
root = snapshot_download("Tactile-JEPA/tactile-jepa-deco")
encoder_state = load_file(f"{root}/pretrain/encoder.safetensors")
task_state = load_file(f"{root}/downstream/policy/model.safetensors")
# Construct the matching architecture using the linked project and saved config:
# encoder.load_state_dict(encoder_state, strict=True)
# task_module.load_state_dict(task_state, strict=True)
# task_module.eval()
These are project-native PyTorch checkpoints, not Transformers AutoModel repositories. Use the linked code and matching architecture. Saved configs may contain Hydra runtime interpolation and data-dependent fields populated by the dataset loaders; they are training snapshots, not standalone inference applications. Set dataset paths and preserve the preprocessing, sensor ordering and normalization. Raw .ckpt files retain the original project checkpoint format.
Provenance
Selection source: notebooks/shared_experiment_queue_recent_20260910_timeline_and_results.executed.ipynb, supplied snapshot timestamp 2026-09-16T07:22:22+03:00. The source notebook was retrieved on 2026-09-23. Weights were paired using the downstream training configuration and verified by tensor comparison. The safetensors exports preserve tensor values; original checkpoint SHA-256 hashes are recorded. No training or dataset files are included.
License follows the source project: CC BY-NC 4.0. See LICENSE.md.