Professional, reproducible implementation of JEPA-style training with an MC-JEPA-inspired joint objective (content + motion).
Reference paper:
- MC-JEPA: A Joint-Embedding Predictive Architecture for Self-Supervised Learning of Motion and Content Features (arXiv:2307.12698v1, July 24, 2023)
python -m venv .venv
# PowerShell:
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
pip install -e .Available presets for preprocessing:
kineticssomething-somethingego4d
-
Put raw videos under one root, e.g.
data/raw_videos/. -
Build clips with a preset:
Kinetics-style:
python scripts/prepare_videos.py --preset kinetics --input-root data/raw_videos --train-out data/clips/train --val-out data/clips/valSomething-Something-style:
python scripts/prepare_videos.py --preset something-something --input-root data/raw_videos --train-out data/clips/train --val-out data/clips/valEgo4D-style:
python scripts/prepare_videos.py --preset ego4d --input-root data/raw_videos --train-out data/clips/train --val-out data/clips/val- Train with matching config:
Kinetics:
python scripts/train.py train-mc-jepa --config configs/mc_jepa_kinetics.yamlSomething-Something:
python scripts/train.py train-mc-jepa --config configs/mc_jepa_something_something.yamlEgo4D:
python scripts/train.py train-mc-jepa --config configs/mc_jepa_ego4d.yaml- Run ablation benchmark:
python scripts/train.py benchmark-mc-jepa --config configs/mc_jepa_kinetics.yamlSaved under artifacts/mc_jepa/<preset>/:
mcjepa_losses.pngsample_step_*.pngbenchmark/benchmark_runs.csvbenchmark/benchmark_summary.jsonbenchmark/benchmark_ablation.pngbenchmark/REPORT.md
Atari collector is kept only for debugging:
python scripts/collect_atari.py