Training and evaluation workspace for CARD, a diffusion-based hand-motion forecasting model, with reproducible experiment configs, ablation runners, and dataset-specific orchestration.
configs/experiment.yaml: main experiment configurationconfigs/models/*.yaml: per-model defaultsscripts/run_all_models.sh: entrypoint scripttools/run_all_models.py: orchestratorresults/all_models_metrics_long.csv: aggregate metricsvendor/: model repositories used by the orchestrator
Use uv to create and manage the local virtual environment.
Create .venv and install dependencies:
cd /path/to/diffusion_hands
uv venv .venv
uv pip install -r requirements.txtActivate it:
source .venv/bin/activateDefault run:
cd /path/to/diffusion_hands
bash scripts/run_all_models.shRun the card ablation config:
bash scripts/run_card_ablation.shRun a custom config:
bash scripts/run_all_models.sh configs/experiment.yamlThe repository currently includes these launcher scripts only:
scripts/run_all_models.shscripts/run_card_ablation.sh
configs/experiment.yaml controls:
- global options:
seed,gpu_index,num_candidates,humanmac_multimodal_threshold,save_model - shared preprocessing:
preprocessing.input_n/output_n/stride/... - dataset selection:
- one or more datasets with
datasets: [assembly, h2o, bighands, fpha]
- one or more datasets with
- model enable switches under
models.<model_name>.enabled
If omitted from experiment.yaml, these are provided by tools/run_all_models.py:
data_rootsassembly:change_with_your_dataset_pathh2o:change_with_your_dataset_pathbighands:change_with_your_dataset_pathfpha:change_with_your_dataset_path
runtimeoutput_root:results/aggregate_csv:results/all_models_metrics_long.csv
- model config path fallback:
configs/models/{model_name}.yaml
action_filter is applied only for assembly.
It can be a single string or a list of action strings. When a list is provided, the runner processes each assembly action as a separate run, similar to how datasets are processed.
For all other datasets (h2o, bighands, fpha), the runner forces an empty filter.
- Aggregate metrics are appended to:
results/all_models_metrics_long.csvresults/card_ablations.csvfor the dedicated card ablation launcher
- Model-specific training artifacts are written in vendor folders:
vendor/splineeqnet/out/diffusion_hands_runs/card/<run_id>/vendor/skeletondiffusion/out/diffusion_hands_runs/skeletondiffusion/<run_id>/- other models store artifacts in their respective
vendor/<model>/results/...folders (some are cleaned by the runner after metric extraction)