Skip to content
Back to skills

Training And Inference

ASecurity

"Route legacy SECOND and PointPillars model construction, training,

  • 247 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 9, 2026
toolspythonbashapidatabasebackend

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 7 files and shows the line behind each finding

Scanned September 9, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill training-and-inference --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Training And Inference?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Training And Inference
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-training-and-inference-c4c0035f/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-training-and-inference-c4c0035f)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: training-and-inference
description: "Route legacy SECOND and PointPillars model construction, training,
  evaluation, checkpoint restoration, and inference with explicit configuration,
  device, and backend guards."
disable-model-invocation: true
metadata:
  disco-role: operating
license: MIT
---

# Training and inference

Use this sub-skill when a task asks to train or evaluate SECOND/PointPillars,
build a `VoxelNet`, restore a `.tckpt`, run inference, select a model config,
or reason about multi-GPU, fp16, NMS, or spconv errors.

## Safety and compatibility boundary

- This repository is deprecated. Its public README recommends OpenPCDet or
  MMDetection3D for new work; prefer a maintained implementation unless the
  historical checkpoint or experiment specifically requires this code.
- The detector route is **legacy-backend guarded and unverified**. Source code
  depends on old `spconv` APIs (`VoxelGeneratorV2` and NMS symbols), legacy
  Numba CUDA behavior, and an old PyTorch integration. A modern spconv 2.x
  import is not proof of compatibility.
- Run the bundled non-invasive probe before any detector import:
  `python <training-skill-root>/scripts/check_legacy_backend.py`.
  Add `--require-detector` only when deciding whether to attempt a detector
  route. Without it, the probe is diagnostic and returns success even when the
  legacy symbols are absent.
- CUDA availability, a successful CUDA tensor smoke test, or a CPU import does
  not prove that sparse model construction, NMS, training, or inference works.
  Do not claim detector execution was verified from those observations.
- This package has no setup metadata. Use an explicit, isolated environment
  only when a separately supplied compatible checkout is intentionally in
  scope. Do not assume a package install or silently mutate an existing
  environment. This skill does not bundle the historical detector entry point.

## Route the request

1. **Config/data contract:** choose a config and validate dataset paths,
   generated info/database files, class order, voxel range, and point feature
   count. Route dataset generation and layout preparation to
   [data-preparation](../data-preparation/SKILL.md).
2. **Model/training:** map `network_class_name`, VFE, middle extractor, and RPN
   names through the registries; use the Fire commands and output semantics in
   [workflows](references/workflows.md).
3. **Evaluation/geometry:** keep box encoding, NMS, score thresholds, and
   evaluator implementation questions with
   [geometry-and-evaluation](../geometry-and-evaluation/SKILL.md).
4. **Viewer/service:** route web API, browser, and server operations to
   [visualization-and-serving](../visualization-and-serving/SKILL.md); do not
   start the legacy viewer as a training smoke test.

## Reference map

- [workflows](references/workflows.md): Fire commands, guarded train/resume,
  multi-GPU scaling, evaluation outputs, inference, pretrained loading, and
  NuScenes tuning notes.
- [configuration](references/configuration.md): config families, protobuf
  fields, model registries, class order, optimizers, and schedules.
- [API reference](references/api-reference.md): public signatures, model
  methods, builder contracts, freeze filters, and torchplus checkpoints.
- [compatibility](references/compatibility.md): exact backend gate, known
  modern-spconv gaps, and evidence needed to widen executable scope.
- [troubleshooting](references/troubleshooting.md): install/import, optional
  dependencies, data/config, CLI/API, checkpoint, multi-GPU, fp16, and
  workflow-specific failures.

## Guarded command patterns

First run the bundled non-invasive probe:

```bash
python <training-skill-root>/scripts/check_legacy_backend.py
python <training-skill-root>/scripts/check_legacy_backend.py --require-detector
```

The second command is the detector gate. This skill does not bundle or invoke
that historical writer/runner, so no source-checkout command is presented as a
runnable recipe. If the probe reports missing legacy symbols, stop before any
historical `train`, `evaluate`, or `TorchInferenceContext` attempt; capture the
exact missing names and use [compatibility](references/compatibility.md) for
recovery. If a user separately supplies a compatible checkout, the historical
argument shapes are documented in [workflows](references/workflows.md).

These are guarded historical routes, not verified recipes. `train` refuses an
existing `model_dir` unless `--resume=True`; `--create_folder=True` creates a
new timestamped folder when the requested prefix already exists. Keep model
outputs outside the source tree and back up checkpoints before experiments.

## Core decisions

- `batch_size` and `num_workers` in the training input config are **per GPU**.
  The implementation multiplies both by the visible GPU count for
  `--multi_gpu=True`; do not multiply the config values yourself.
- The README says to divide `train_config.steps` and `steps_per_eval` by the
  number of GPUs when scaling a single-GPU schedule to multi-GPU. Verify this
  arithmetic before launching; an undivided schedule changes total optimizer
  updates and evaluation cadence.
- fp16 requires the historical Apex path and a compatible sparse backend;
  `enable_mixed_precision: true` is not equivalent to modern PyTorch AMP.
  Honor the source assertion that `max_number_of_voxels * batch_size < 65535`.
- `measure_time=True` enables CUDA synchronization/timers in model paths and
  can distort throughput. Use it only for a deliberate timing run.
- `evaluate` writes `result.pkl` below `<result-path>/step_<global_step>` and
  invokes the dataset evaluator. The historical signature does not accept the
  README-era `--pickle_result` keyword; do not pass it to a separately supplied
  runner unless its help output proves otherwise. Route official label
  conversion to geometry/evaluation after checking the exact dataset API.
- Checkpoints are named by model/optimizer plus step and indexed in
  `checkpoints.json`. Restore the latest compatible state, or pass an explicit
  `.tckpt`; never mix a checkpoint with an incompatible config.

For exact signatures, config fields, model registry names, checkpoint utilities,
and failure recovery, read the linked references before giving a detailed
command or API answer.

Files in this skill

  • SKILL.md6.2 KB
  • references/api-reference.md7.5 KB
  • references/compatibility.md6.3 KB
  • references/configuration.md7.5 KB
  • references/troubleshooting.md10.6 KB
  • references/workflows.md9.8 KB
  • scripts/check_legacy_backend.py5.9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.