Tactile-JEPA: Tactile Socks — action

Paper · Project · Code

One shared JEPA pretrain (seed 17) and the selected downstream checkpoint(s) from the main Tactile-JEPA protocol. No baselines or masking ablations are included.

453 pressure sensors (237 left, 216 right); five-frame encoder chunks, nine chunks per 45-frame action window.

Selected checkpoints

Task Metric Selected checkpoint value Head seed
action Action top-1 accuracy 98.462302% 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).

This release preserves the historical overlap-5 evaluation artifacts used by the supplied notebook. A project audit dated 2026-09-15 reported active downstream dropout during evaluation; the action protocol also has recording overlap and boundary-frame overlap between some splits. No corrected re-evaluation is claimed here. The numerical values above were recomputed from the original saved predictions, not from a new inference pass.

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-socks-action")
encoder_state = load_file(f"{root}/pretrain/encoder.safetensors")
task_state = load_file(f"{root}/downstream/action/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.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Paper for Tactile-JEPA/tactile-jepa-socks-action