name: training-evaluation
description: "Use Torch Points3D Hydra training, evaluation, Trainer,
checkpoints, forward inference, visualization, and experiment-output helpers."
disable-model-invocation: true
metadata:
disco-role: operating
license: NOASSERTION
Torch Points3D Training and Evaluation
Use this sub-skill when the user asks to compose Torch Points3D train.py or
eval.py commands, debug Trainer, resume or evaluate checkpoints, inspect
outputs/<date>/<time> runs, configure W&B/TensorBoard/visualization, or run
forward inference on unlabeled data from a trained checkpoint.
Read First
Main Workflows
Compose a training command
Training is a Hydra script, not an installed console entry point. In a Torch
Points3D-style project containing train.py and conf/, specify the task,
model config group, data config group, and model entry:
python train.py \
task=segmentation \
models=segmentation/pointnet2 \
data=segmentation/shapenet-fixed \
model_name=pointnet2_charlesssg \
training.wandb.log=False \
training.tensorboard.log=False \
training.tensorboard.pytorch_profiler.log=False \
debugging=early_break
Use the config smoke script first if the user is unsure whether selectors match.
For real runs, remove debugging=early_break and configure data roots, logging,
CUDA, batch size, and output directories intentionally.
Evaluate a checkpoint
eval.py uses conf/eval.yaml. The essential fields are checkpoint_dir,
model_name, weight_name, batch_size, num_workers, cuda,
precompute_multi_scale, and tracker_options.
python eval.py checkpoint_dir=/path/to/run model_name=pointnet2_charlesssg weight_name=latest cuda=-1
Set cuda=-1 for CPU-only evaluation. Keep tracker_options.make_submission
and full_res explicit when evaluating datasets that support submissions or
full-resolution voting.
Inspect output runs
python sub-skills/training-evaluation/scripts/summarize_runs.py --outputs-dir outputs --json
The bundled helper finds .pt checkpoints, reads their stats dict when
possible, and reports malformed/empty folders without deleting anything.
Forward inference from a checkpoint
The repo forward workflow adapts a checkpoint's training data config to a
forward dataset class and writes .npy predictions. It needs a real checkpoint,
input data root, and output directory. Use the preflight helper before launching
the real job:
python sub-skills/training-evaluation/scripts/forward_preflight.py \
--checkpoint-dir /path/to/run --model-name pointnet2_charlesssg \
--input-path /path/to/unlabeled-data --output-path /path/to/predictions
Then see forward inference for the command
shape and caveats.
Boundary Rules
- For standalone
PointNet2/KPConv/RSConv forward APIs without a Hydra run, use model-apis.
- For data layout, transform, or dataset-class lookup problems, use datasets-transforms.
- For registration descriptor evaluation or test-set protocols, use registration-workflows.
Safety Checklist
- Do not run full training, cross-validation, W&B checkpoint downloads, or dataset downloads without user approval for runtime, network, data size, and writes.
- For smoke runs, disable W&B/TensorBoard/profiler and set
debugging=early_break.
- Prefer
cuda=-1 for CPU checks; use GPU only after the dependency stack matches the target CUDA build.
- Treat skipped sparse/CUDA checks as optional limitations, not as passes.